配置集群时,要求所有节点的集群名,分区器,snitch必须相同。种子节点最好相同。

种子节点:最好每个DC,配置2个,这样即使一个DC中一个种子节点挂了,仍然有一个中子节点可用。种子节点被认为是最先加入集群的,不会做数据迁移。其他节点都会优先连接种子节点加入集群。允许指定种子节点的实现,默认:org.apache.cassandra.locator.SeedProvider,这会从yaml文件中加载种子节点。
分区器:指定分区键如何排序。
Murmur3Partitioner,默认分区器,org.apache.cassandra.dht.Murmur3Partitioner,使用murmur3哈希算法生成token,使得分区键分布均匀随机。
RandomPartitioner,原来的默认分区器,使用加密hash,速度慢于murmur3,使用BigIntegerToken并应用MD5加密hash来确定分区键分布。
OrderPreservingPartitioner,有序分区器,token基于分区键的UTF-8字符串的排序,可以实现区间分片。会导致环不平衡,要经常使用nodetool loadbalance或者move操作。这样又会导致区间(多个分区键)查询并不比随机分区下的查询好多少。
ByteOrderedPartitioner,将数据处理为字节,根据字节去排序。

Snitch
endpoint_snitch可配置值:
org.apache.cassandra.locator.SimpleSnitch:没有机架感知策略,不适合多DC,副本策略只能选择SimpleStrategy。
org.apache.cassandra.locator.PropertyFileSnitch:使用cassandratopology.properties的标准java键/值属性文件来路由请求。副本策略设置NetworkTopologyStrategy。cassandra直接读文件确定节点在哪,发现节点时性能更高。
org.apache.cassandra.locator.GossipingPropertyFileSnitch:机架感知snitch。通过gossip交换机架和数据中心位置信息。使用cassandra-rackdc.properties文件定义,如果有cassandratopology.properties,也会使用。
org.apache.cassandra.locator.RackInferringSnitch:假定集群的节点按照一种一致的组网方案分布。比较各个节点IP的8位字节。如果第二个8位字节相同,认为在同一个DC。如果第三个8位字节的值相同,认为同一个机架。
云snitch:org.apache.cassandra.locator.Ec2Snitch和Ec2MultiRegionSnitch(Amazon EC2),org.apache.cassandra.locator.GoogleCloudSnitch,org.apache.cassandra.locator.CloudStackSnitch(Apache Cloudstack)
org.apache.cassandra.locator.DynamicEndPointSnitch:默认开启,包装上面选择的snitch。以下三个参数决定怎么动态snitch:dynamic_snitch_badness_threshold,dynamic_snitch_reset_interval_in_ms,dynamic_snitch_update_interval_in_ms

token:目前默认256,许多建议是32。我的使用经验是64。根据数据节点数,数量测试下最常用的模型的数据分布,确定的。
禁用虚拟节点:num_tokens设置为1,或者注释掉。同时设置initial_token.

网络配置:
listen_address(ip地址)和listen_interface(接口名比如eth0),2选1。
cassandra支持Thrift API(RPC),CQL(native transpot)。2.2之前,2个接口都支持,默认启用。3.0开始,默认禁用Thrift。CQL由start_native_transport来决定开启关闭,默认开启。
RPC端口,rpc_port,主要是Thrift 客户端使用。
rpc_keepalive,RPC和CQL都会用,默认为true,表示允许客户端保持长连接。
cassandra磁盘少了一个也可以保持运行。数据文件由disk_failure_policy决定,commitlog由commit_failure_policy决定。默认为stop,禁用客户端接口。
keyspace的durable_write:是否允许不写commitlog。默认为true,即写commitlog。
增加副本因子-->nodetool repair
减少副本因子-->nodetool clean
一般原则:写吞吐量=节点数除以副本因子。

cassandra权威指南读书笔记--配置cassadnra的更多相关文章

  1. cassandra权威指南读书笔记--性能调优

    cassandra自带测试工具cassandra-stress.nodetool proxyhistograms可以在多个节点运行,发现最慢的协调节点.nodetool tablehistograms ...

  2. cassandra权威指南读书笔记--客户端

    DataStax驱动最成熟.默认,驱动程序会使用第一个连接的节点作为支持的版本协议.如果集群存在高低版本的节点(比如升级场景),如果驱动先连接不同不同版本的节点,可能会出现不兼容.驱动支持压缩客户端和 ...

  3. cassandra权威指南读书笔记--安全

    认证和授权driver,JMX和cassandra服务器支持SSL/TLS,cassandra节点间也支持SSL/TLS.密码认证器cassandra还支持自定义,可插拔的认证机制.默认的认证器:or ...

  4. cassandra权威指南读书笔记--监控&维护

    cassandra SLF4J API记录日志,具体采用Logback实现.在终端启动cassandra时,可以向程序输入-f,就能在终端看到这个输出.Java Mangement Extension ...

  5. cassandra权威指南读书笔记--读写数据

    写cassandra除了轻量级事务,不支持别的事务.cassandra是追加写,写的速度非常快.cassandra还有hint日志,这个数据库总是可写的,而且单个列的写操作是原子的.hint并不是一定 ...

  6. cassandra权威指南读书笔记--Cassandra架构(3)

    分阶段事件驱动架构 SEDASEDA(Staged Event-Driven Architecture)的核心思想是把一个请求处理过程分成几个Stage,不同资源消耗的Stage使用不同数量的线程来处 ...

  7. cassandra权威指南读书笔记--Cassandra架构(2)

    环和令牌cassandra的数据管理是用一个环来表示.为环中的每个节点分配一or多个数据范围,用token描述.token由64位整数ID表示,范围-2^(63)~2^(63)-1.使用对分区键进行一 ...

  8. cassandra权威指南读书笔记--Cassandra架构(1)

    结构 集群-->数据中心-->机架-->节点. cassandra尽可能将数据副本存在多个数据中心,然后读取(查询路由到)尽可能在本地数据中心. 为了去中心化和分区容错性,使用gos ...

  9. cassandra权威指南读书笔记--数据建模

    没有join操作.有轻量级事务和批处理,但是没有外键等.反规范化.3.0支持物化视图,允许在一个表上创建数据的多个物化视图.使用cassandra要从查询入手,而不是先从数据模型开始.先对查询建模,然 ...

随机推荐

  1. DAS、SAN和NAS三种服务器存储方式 (转)

    转 :https://blog.csdn.net/fgf00/article/details/52592651    2016年09月20日 09:04:00 凌_风 一.存储的分类根据服务器类型分为 ...

  2. 使用Lists.partition切分性能优化

    项目实战 影拓邦电影同步中,使用Lists.partition按500条长度进行切分,来实现es的同步. 切分的List为 使用介绍及示例 将list集合按指定长度进行切分,返回新的List<L ...

  3. EasyPoi中@Excel注解中numFormat的使用

    需求说明:使用EasyPoi时导出文件中折扣字段是小数,被测试同学提了一个bug,需要转成百分数导出. 个人觉得应该转百分号只要在@Excel注解里面加个属性即可,但是在网上的easypoi教程中没有 ...

  4. Linux下MiniGUI库的安装

    Linux下MiniGUI库的安装 今天试了下安装MiniGUI的库 先仿照官网的教程安装 传送门:MiniGUI官网 一.配置依赖环境 安装构建工具 apt install binutils aut ...

  5. Kubernetes官方java客户端之八:fluent style

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. 【剑指 Offer】05.替换空格

    题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are happy." 输出:"We%20a ...

  7. 虚拟机Linux安装Oracle容器并实现局域网其他主机访问查询

    该文涉及Docker下Oracle容器的安装,主机端口的设置实现局域网内终端均能连接上Oracle数据库,图解如下: 一.关于Docker安装oracle容器可以参考下面博文: https://blo ...

  8. 【Java】运算符(算术、赋值、比较(关系)、逻辑、条件、位运算符)

    运算符 文章目录 运算符 1. 算术运算符 2. 赋值运算符 3. 比较运算符 4. 逻辑运算符 5. 条件运算符 6. 位运算符 7. 运算符优先级 8. 运算符操作数类型说明 9.code 算术运 ...

  9. ctfhub技能树—信息泄露—备份文件下载—网站源码

    打开靶机 查看网页内容 使用dirsearch进行扫描 命令如下 python3 dirsearch.py -u http://challenge-91f1f5e6a791ab02.sandbox.c ...

  10. OpenStack使用OVN

    1. Controller节点 1.1 安装 OVS和OVN 安装 Python3.7: yum -y groupinstall "Development tools" yum - ...