cassandra权威指南读书笔记--配置cassadnra
配置集群时,要求所有节点的集群名,分区器,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的更多相关文章
- cassandra权威指南读书笔记--性能调优
cassandra自带测试工具cassandra-stress.nodetool proxyhistograms可以在多个节点运行,发现最慢的协调节点.nodetool tablehistograms ...
- cassandra权威指南读书笔记--客户端
DataStax驱动最成熟.默认,驱动程序会使用第一个连接的节点作为支持的版本协议.如果集群存在高低版本的节点(比如升级场景),如果驱动先连接不同不同版本的节点,可能会出现不兼容.驱动支持压缩客户端和 ...
- cassandra权威指南读书笔记--安全
认证和授权driver,JMX和cassandra服务器支持SSL/TLS,cassandra节点间也支持SSL/TLS.密码认证器cassandra还支持自定义,可插拔的认证机制.默认的认证器:or ...
- cassandra权威指南读书笔记--监控&维护
cassandra SLF4J API记录日志,具体采用Logback实现.在终端启动cassandra时,可以向程序输入-f,就能在终端看到这个输出.Java Mangement Extension ...
- cassandra权威指南读书笔记--读写数据
写cassandra除了轻量级事务,不支持别的事务.cassandra是追加写,写的速度非常快.cassandra还有hint日志,这个数据库总是可写的,而且单个列的写操作是原子的.hint并不是一定 ...
- cassandra权威指南读书笔记--Cassandra架构(3)
分阶段事件驱动架构 SEDASEDA(Staged Event-Driven Architecture)的核心思想是把一个请求处理过程分成几个Stage,不同资源消耗的Stage使用不同数量的线程来处 ...
- cassandra权威指南读书笔记--Cassandra架构(2)
环和令牌cassandra的数据管理是用一个环来表示.为环中的每个节点分配一or多个数据范围,用token描述.token由64位整数ID表示,范围-2^(63)~2^(63)-1.使用对分区键进行一 ...
- cassandra权威指南读书笔记--Cassandra架构(1)
结构 集群-->数据中心-->机架-->节点. cassandra尽可能将数据副本存在多个数据中心,然后读取(查询路由到)尽可能在本地数据中心. 为了去中心化和分区容错性,使用gos ...
- cassandra权威指南读书笔记--数据建模
没有join操作.有轻量级事务和批处理,但是没有外键等.反规范化.3.0支持物化视图,允许在一个表上创建数据的多个物化视图.使用cassandra要从查询入手,而不是先从数据模型开始.先对查询建模,然 ...
随机推荐
- ubutu14.04选中文本就会删除问题解决
1.网上解法 (1)重装ibus sudo apt-get install --reinstall ibus (2)键盘格局为english(united state) (3)升级火狐为最新版 以上方 ...
- JAVA编程环境与基本数据类型
<JAVA编程环境与基本数据类型> 随笔目录 # <JAVA编程环境与基本数据类型> 随笔目录 - Java小实例 java的编程环境 java数据类型 Java小实例 jav ...
- Scaled-YOLOv4 快速开始,训练自定义数据集
代码: https://github.com/ikuokuo/start-scaled-yolov4 Scaled-YOLOv4 代码: https://github.com/WongKinYiu/S ...
- 洛谷P1055 字符串的处理-----ISBN
题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括99位数字.11位识别码和33位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位 ...
- JAVA开发手册-Markdown
前言 前 言 <Java 开发手册>是技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善.现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点 ...
- LeetCode485 最大连续1的个数
给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意: 输入的数组 ...
- 简单的JS+CSS实现网页自定义换肤
1,实现效果 2,实现原理 主要原理是利用css变量设置颜色,用js动态修改变量,使颜色变化,兼容性如下: 实现换肤之前先要了解一下伪类选择器 :root ,还有css的 var() 函数和 set ...
- linux服务开机自启动&注册系统服务
首先先看下linux系统开机启动顺序,如下图 对,要解决Linux CentOS 和 Red Hat Linux 系统中设置服务自启动有两种方式,就是从图中圈出的两个步骤下手. 一.修改 /etc/r ...
- 在项目中应该使用Boolean还是使用boolean?
起因 在公司看代码时,看到了使用Boolean对象来完成业务逻辑判断的操作.和我的习惯不一致,于是引起了一些反思. boolean和Boolean的差别咱就不说了,我们仅探讨使用boolean与Boo ...
- 在Ubuntu18.04下编译出ffmpeg(支持推流H265成rtmp)
Ubuntu18.04下编译libx264.libx265.libfdk_aac和ffmpeg 一.编译x264库 二.编译fdk-aac库 三.编译x265库 四.编译FFmpeg源码 五.设置环境 ...