Cassandra.yaml 配置详解
cluster_name
设置Cassandra集群的名称。
在Cassandra集群中,每一台服务器都必须具备相应的集群的名称。如果名称不一致,则当前Cassandra服务器无法加入集群。 initial_token
Cassandra服务器的初始化Token值,这个值代表了Cassandra服务器在一致性哈希环中的位置。
当Cassandra第一次启动的时候,会从该配置项中读取,如果留空,将随机生成一个Token值。如果Cassandra不是第一次启动,将从系统表中读取该Token值。 auto_bootstrap
第一次启动的时候,是否在加入Cassandra集群时从其他服务器获取属于本服务器的数据。
如果当前Cassandra服务器不在seed配置选项中,并且是第一次启动,将从Cassandra集群中其他服务器获取属于本服务器的数据。 hinted_handoff_enabled
是否开启当前Cassandra服务器的HINT操作。
如果开启该功能,Cassandra服务器将缓存发送给暂时失效的其他Cassandra服务器的数据,等待失效的服务器恢复后,再将缓存的数据发送给恢复的服务器。 authenticator
验证使用Cassandra的用户是否合法,这是安全认证的第一步。
Cassandra中定义了一系列验证用户的策略,可以选择的项为:
1. org.apache.cassandra.auth.AllowAllAuthenticator
所有的用户都是合法的。
2. org.apache.cassandra.auth.SimpleAuthenticator
合法的用户和对应的密码都在passwd.properties文件中定义。 authority
验证该用户是否具备操作某一个Column Family的权限,这是安全认证的第一步。
Cassandra中定义了一系列验证用户权限的策略,可以选择的项为:
1. org.apache.cassandra.auth.AllowAllAuthority
所有的用户具备所有的权限。
2. org.apache.cassandra.auth.SimpleAuthority
合法的用户和对应的权限都在access.properties文件中定义。 partitioner
Cassandra集群中数据分区的策略。
同一个Cassandra集群中的每一台服务器中的该配置需要一致。 Cassandra中定义了一系列数据分区的策略,可以选择的项为:
1. org.apache.cassandra.dht.RandomPartitioner
2. org.apache.cassandra.dht.ByteOrderedPartitioner
3. org.apache.cassandra.dht.OrderPreservingPartitioner
4. org.apache.cassandra.dht.CollatingOrderPreservingPartitioner data_file_directories
SSTable文件在磁盘中的存储位置。
这个选项可以设置多个值,即如果服务器具有多个磁盘,可以将这几个磁盘都指定为存储SSTable文件的位置。如果可能,可以考虑将data_file_directories和commitlog_directory设置在不同的磁盘中,这样有利于分散整体系统的磁盘I/O的压力。 commitlog_directory
commitlog文件在磁盘中的存储位置。
如果可能,可以考虑将data_file_directories和commitlog_directory设置在不同的磁盘中,这样有利于分散整体系统的磁盘I/O的压力。 saved_caches_directory
数据缓存文件在磁盘中的存储位置。
commitlog_rotation_threshold_in_mb
每一个commitlog文件的大小。 commitlog_sync
记录commitlog的方式。
可以选择的项为:
1. periodic
周期记录commitlog,每一次有数据更新都将操作commitlog。
2. batch
批量记录commitlog,每一段时间内数据的更新将批量一次操作commitlog。 commitlog_sync_period_in_ms
周期记录commitlog时,刷新commitlog文件的时间间隔。这个选项只有在commitlog_sync= periodic时才能设置。 commitlog_sync_batch_window_in_ms
批量记录commitlog时,批量操作缓存的时间间隔。这个选项只有在commitlog_sync= batch时才能设置。 seeds
Cassandra集群中的种子节点地址
这个选项可以设置多个值,即Cassandra集群中有多个种子节点。
集群中所有的服务器在启动的时候,都将于seed节点进行通信,从而获取集群的相关信息。如果某一台服务器被设置为seed节点,那么在启动的时候,将自动加入集群,并且不会执行Bootstrap的操作,即无法从集群的其他节点中获取相应的数据。 disk_access_mode
Cassandra访问SSTable文件中的Data文件和Index文件时是否使用虚拟内存映射的形式。 可以选择的项为:
1. auto
自动选择合适的文件访问形式,如果是64位系统,则为mmap形式,否则为standard形式。 2. mmap
访问SSTable文件中的Data文件和Index文件时,都采用虚拟内存映射的形式。 3. mmap_index_only
访问SSTable文件中的Index文件时采用虚拟内存映射的形式。 4. standard
访问SSTable文件中的Data文件和Index文件时,都不采用虚拟内存映射的形式。
使用虚拟内存映射的形式访问文件能够加快对文件的读写速度,但是这是以消耗而外的内存作为代价的。所以要根据实际内存大小与文件大小来选择合适的文件访问方式。 concurrent_reads
并发读取的线程数。
这个选项设置得越大,Cassandra在进行读取操作时可以使用的线程数就越多。推荐的配置为:CPU的个数*2。
concurrent_writes
并发写入的线程数。
这个选项设置得越大,Cassandra在进行写入操作时可以使用的线程数就越多。 memtable_flush_writers
memtable中的数据写入到磁盘成为SSTable文件的并发数。
这个选项的默认配置为data_file_directories中指定的目录的个数。 sliced_buffer_size_in_kb
进行范围读取操作时,读取SSTable文件使用的缓存大小。 storage_port
Cassandra集群中服务器与服务器之间相互通信的端口号。 listen_address
Cassandra集群中服务器与服务器之间相互通信的地址。如果留空,将默认使用服务器的机器名。 rpc_address
Cassandra服务器对外提供服务的地址。如果留空,将默认使用服务器的机器名。 rpc_port
Cassandra服务器对外提供服务的端口号。 rpc_keepalive
Cassandra服务器对外提供服务连接是否一直保持。 thrift_framed_transport_size_in_mb
使用Thrift Frame每次传递的数据大小。如果该选项为0,则禁用Thrift Frame。 thrift_max_message_length_in_mb
使用Thrift传递的数据最大值。 snapshot_before_compaction
Cassandra在执行数据压缩操作前,是否对需要压缩的SSTable文件做数据快照(snapshot)。 binary_memtable_throughput_in_mb
binary memtable的缓存大小。
binary memtable用于大量数据的初始化操作。 column_index_size_in_kb
SSTable文件中的Data文件对应Column索引的数据大小间隔。如果这个值越小,在Column索引中找到相应的值速度就越快,但是会消耗更多的内存与磁盘空间。 in_memory_compaction_limit_in_mb
在Cassandra执行数据压缩时,如果某一个key对应的数据的大小超过了in_memory_compaction_limit_in_mb的限制,将采用延后压缩的机制进行压缩,避免使用过多的内存。 rpc_timeout_in_ms
如果Cassandra服务器在处理外部请求的时候,如果超过了rpc_timeout_in_ms的限制,将抛出超时异常给调用的客户端。 endpoint_snitch
Cassandra集群中网络的选择策略。
Cassandra中定义了一系列网络的选择策略,可以选择的项为:
1. org.apache.cassandra.locator.SimpleSnitch
2. org.apache.cassandra.locator.RackInferringSnitch
3. org.apache.cassandra.locator.PropertyFileSnitch dynamic_snitch
是否启用动态的节点选择策略。启动该选项可以在做有效地避免相应缓慢的节点。 和这个选项相关的其他选项为:
dynamic_snitch_update_interval_in_ms
dynamic_snitch_reset_interval_in_ms
dynamic_snitch_badness_threshold request_scheduler
设置资源调度分配策略
Cassandra中定义了一系列网络的选择策略,可以选择的项为:
1. org.apache.cassandra.scheduler.NoScheduler
所有的请求分配的计算资源都是均等的。
2. org.apache.cassandra.scheduler.RoundRobinScheduler
对不同的Keyspace分配不同的计算资源。
在多租户的情况下适合使用RoundRobinScheduler。 index_interval
SSTable文件中的Index文件对应内存索引的数据大小间隔。如果这个值越小,在内存索引中找到相应的值速度就越快,但是会消耗更多的内存。 keyspaces
定义Keyspace的属性。
name:定义keyspace的名称。
replica_placement_strategy:定义数据的备份策略,可选的项为:
1. org.apache.cassandra.locator.SimpleStrategy
2. org.apache.cassandra.locator.OldNetworkTopologyStrategy
3. org.apache.cassandra.locator.NetworkTopologyStrategy
4. org.apache.cassandra.locator.LocalStrategy replication_factor:定义数据的备份数。
column_families:定义Column Family的属性
column_type:定义Column Family的类型。可以设置为Super或者Standard,如果不设置,为Standard类型。
compare_with:Column名称的排序规则。可选的项为:
1. AsciiType
2. UTF8Type
3. LexicalUUIDType
4. TimeUUIDType
5. LongType
6. IntegerType compare_subcolumns_with:SuperColumn下的Column名称的排序规则。可选的项为:
1. AsciiType
2. UTF8Type
3. LexicalUUIDType
4. TimeUUIDType
5. LongType
6. IntegerType
rows_cached:row缓存的数量,可以为整数或者百分比。
keys_cached:key缓存的数量,可以为整数或者百分比。
row_cache_save_period_in_seconds:定义Column Family中的持久化row缓存的时间间隔,如果为0,关闭持久化row缓存功能。
key_cache_save_period_in_seconds:定义Column Family中的持久化key缓存的时间间隔,如果为0,关闭持久化key缓存功能。
gc_grace_seconds:定义Column Family中数据标记为删除后到真正进行物理删除的时间间隔,如果不设置,默认为10天(864000秒)。
memtable_flush_after_mins:定义Column Family中memtable最大的生存时间。
memtable_throughput_in_mb:定义Column Family中memtable最大缓存的数据大小。
memtable_operations_in_millions:定义Column Family中memtable最大缓存的数据条数。
min_compaction_threshold:定义Column Family中执行数据压缩的最小SSTable文件数。
max_compaction_threshold:定义Column Family中执行数据压缩的最大SSTable文件数。 default_validation_class:定义Column Family中默认校验值的类型规则。可选的项为:
1. AsciiType
2. UTF8Type
3. LexicalUUIDType
4. TimeUUIDType
5. LongType
6. IntegerType column_metadata:定义二级索引的属性。
name:定义需要进行二级索引的Column名称。 validator_class:定义Column Family中校验值的类型规则。可选的项为:
1. AsciiType
2. UTF8Type
3. LexicalUUIDType
4. TimeUUIDType
5. LongType
6. IntegerType index_type:定义二级索引的类型,目前支持的选项为:KEYS
Cassandra.yaml 配置详解的更多相关文章
- mongodb 3.2 yaml 配置详解及范例
mongodb3.x版本后就是要yaml语法格式的配置文件,下面是yaml配置文件格式如下:官方yaml配置文件选项参考:https://docs.mongodb.org/manual/ ... #c ...
- [Kubernetes]yaml文件详解
应前一段时间夸下的海口:[Kubernetes]如何使用yaml文件使得可以向外暴露服务,说过要写一篇关于yaml文件详解的文章出来的,今天来总结一下.yaml文件用在很多地方,但是这里以介绍在Kub ...
- springboot配置详解
springboot配置详解 Author:SimpleWu properteis文件属性参考大全 springboot默认加载配置 SpringBoot使用两种全局的配置文件,全局配置文件可以对一些 ...
- Spring Boot 启动(二) 配置详解
Spring Boot 启动(二) 配置详解 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring Boot 配置 ...
- elasticsearch-.yml(中文配置详解)
此elasticsearch-.yml配置文件,是在$ES_HOME/config/下 elasticsearch-.yml(中文配置详解) # ======================== El ...
- SpringBoot—整合log4j2入门和log4j2.xml配置详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...
- k8s之yaml文件详解
k8s之yaml文件详解 目录 k8s之yaml文件详解 1. k8s支持的文件格式 2. YAML语言格式 3. 查看api资源版本标签 4. 编写nginx-test.yaml资源配置清单 4.1 ...
- Log4j配置详解(转)
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- logback 常用配置详解<appender>
logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...
随机推荐
- Ubuntu上Qt+Tcp网络编程之简单聊天对话框
首先看一下实现结果: >>功能: (1)服务器和客户端之间进行聊天通信: (2)一个服务器可同时给多个客户端发送消息:(全部连接时) 也可以只给特定的客户端发送消息:(连接特定IP) ...
- Qt中信号(signal)和槽(slot)的几种关联方法
声明,个人总结,不一定正确! 1.最常见的,使用connect语句.比如:connect(btnSend,SIGNAL(clicked()),this,SLOT(clear()); 2.在 .ui设计 ...
- jenkins和svn搭建自动代码构建发布
jenkins安装和配置 .安装jenkins .yum install java wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins. ...
- git pull 冲突拉取不到新的代码
本地文件已经有冲突或者在pull的过程中拉取的文件和本地文件冲突时,拉取不到新的代码,git pull出现报错,如下: 这个时候,如果你有两种选择,如果你需要这些改动,那个你就需要手动解决冲突,然后a ...
- 利用python脚本(xpath)抓取数据
有人会问re和xpath是什么关系?如果你了解js与jquery,那么这个就很好理解了. 上一篇:利用python脚本(re)抓取美空mm图片 # -*- coding:utf-8 -*- from ...
- 数据库SQL的多表查询
数据库 SQL 的多表查询:eg: table1: employees, table2: departments,table3: salary_grades; 一:内连接: 1):等值连接: 把表em ...
- .Net Core创建Docker镜像
1..Net Core项目[Lails.Server.Demo]发布到目录下Lails.Server.Demo\bin\Release\netcoreapp2.1\publish 2.上面目录下新建文 ...
- jw player 配置参数
Loading the player … //player所在div //具体配置参数 jwplayer(“container”).setup({//通过js调用播放器并安装到指定容器(contain ...
- Python Redis 管道
redis-py默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求指定多个命令,并且默认情况下一次pi ...
- Unicode UTF-8 UTF-16的关系
以下仅为个人学习的记录,如有疏漏不妥之处,还请不吝赐教. 关系 Unicode是一个字符集.顾名思义,字符的集合.GBK,BIG5,ISO8859-1,ASCII都是字符集. 有一点不同的是,Unic ...