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要从查询入手,而不是先从数据模型开始.先对查询建模,然 ...
随机推荐
- spark知识点_datasources
来自官网DataFrames.DataSets.SQL,即sparkSQL模块. 通过dataframe接口,sparkSQL支持多种数据源的操作.可以把dataframe注册为临时视图,也可以通过关 ...
- PHP 获取天气
/** * 获取天气 */ function get_tq () { //获取用户ip地址 $ip = get_real_ip(); // $ip = '123.125.71.38'; //根据ip地 ...
- Spring Boot GraphQL 实战 03_分页、全局异常处理和异步加载
hello,大家好,我是小黑,又和大家见面啦~ 今天我们来继续学习 Spring Boot GraphQL 实战,我们使用的框架是 https://github.com/graphql-java-ki ...
- 【C++】《Effective C++》第九章
杂项讨论 条款53:不要轻忽编译器的警告 请记住 严肃对待编译器发出的警告信息.努力在你的编译器的最高(最严苛)警告级别下争取"无任何警告"的容易. 不要过度依赖编译器的报警能力, ...
- 1018 Public Bike Management (30分) PAT甲级真题 dijkstra + dfs
前言: 本题是我在浏览了柳神的代码后,记下的一次半转载式笔记,不经感叹柳神的强大orz,这里给出柳神的题解地址:https://blog.csdn.net/liuchuo/article/detail ...
- C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻
这是道哥的第014篇原创 目录 一.前言 二.变量与指针的本质 1. 内存地址 2. 32位与64位系统 3. 变量 4. 指针变量 5. 操作指针变量 5.1 指针变量自身的值 5.2 获取指针变量 ...
- mysql中的kill
show processlist;查看id, 然后 kill id ; 就行了.
- C#数组的 Length 和 Count()
C#数组的 Length 和 Count() C# 数组中 Length 表示数组项的个数,是个属性.而 Count() 也是表示项的个数,是个方法,它的值和 Length 一样.但实际上严格地说, ...
- [MRCTF2020]你传你🐎呢之.htaccess
前言 最近,也是遇到了文件上传的文件,自己搭的靶场都不能用,今天,在这里又遇到了这个题.简单总结下,内容来自互联网,若有侵权,联系我. .htaccess简介 .htaccess文件(分布式配置文件) ...
- Python设计模式面向对象编程
前言 本篇文章是基于极客时间王争的<设计模式之美>做的总结和自己的理解. 说到面向对象编程,作为一个合格的Pythoner,可以说信手拈来.毕竟在Python里"万物都是对 ...