cassandra 配置文件Word文档下载推荐.docx
《cassandra 配置文件Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《cassandra 配置文件Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
当hinted_handoff_enabled为true时,将不执行暗示切换的数据中心的黑名单
默认值(复杂选项):
#-DC1
#-DC2
●max_hint_window_in_ms
这定义了死主机将生成提示的最大时间量。
它已经死了这么长的时间,它的新提示将不会创建,直到它被看到活着,并再次下降。
10800000#3hours
●hinted_handoff_throttle_in_kb
每个传递线程的最大速度(KB)/秒。
这将与集群中的节点数成比例地减少。
(如果集群中有两个节点,则每个传递线程将使用最大速率;
如果有三个节点,则每个节点将节流到最大值的一半,因为我们期望两个节点同时传递提示)。
1024
●max_hints_delivery_threads
传递提示的线程数;
在进行多dc部署时,请考虑增加此数,因为交叉直流切换往往较慢
2
●hints_directory
默认情况下,此选项被注释掉
Cassandra应该存储提示的目录。
如果未设置,则默认目录为$CASSANDRA_HOME/data/hints。
/var/lib/cassandra/hints
●hints_flush_period_in_ms
提示应该从内部缓冲区刷新到磁盘的频率。
不会触发fsync。
10000
●max_hints_file_size_in_mb
单个提示文件的最大大小(MB)。
128
●hints_compression
默认情况下,此选项将被注释掉。
压缩以应用于提示文件。
如果省略,hints文件将被解压缩。
支持LZ4,Snappy和Deflate压缩机。
#-class_name:
LZ4Compressor
#parameters:
#-
●batchlog_replay_throttle_in_kb
最大速率(KB)/秒,总数。
这将与集群中的节点数成比例地减少。
●authenticator
后端认证,实现IAuthenticator;
用于标识用户,Cassandra提供了org.apache.cassandra.auth。
{AllowAllAuthenticator,PasswordAuthenticator}。
AllowAllAuthenticator不执行任何检查-将其设置为禁用身份验证。
PasswordAuthenticator依赖用户名/密码对来验证用户。
它将用户名和散列密码保存在system_auth.credentials表中。
如果使用此验证器,请增加system_auth键空间复制因子。
如果使用PasswordAuthenticator,还必须使用CassandraRoleManager(见下文)
AllowAllAuthenticator
●authorizer
后端授权,实现IAuthorizer;
用于限制访问/提供权限,Cassandra提供了org.apache.cassandra.auth。
{AllowAllAuthorizer,CassandraAuthorizer}。
AllowAllAuthorizer允许任何用户的任何操作-将其设置为禁用授权。
CassandraAuthorizer在system_auth.permissions表中存储权限。
如果使用此授权器,请增加system_auth键空间复制因子。
AllowAllAuthorizer
●role_manager
部分认证和授权后端,实现IRoleManager;
用于维护角色之间的授权和成员资格。
Cassandra提供了org.apache.cassandra.auth.CassandraRoleManager,它在system_auth键空间中存储角色信息。
IRoleManager的大多数功能需要经过身份验证的登录,因此除非配置的IAuthenticator实际上实现身份验证,否则大多数此功能将不可用。
CassandraRoleManager将角色数据存储在system_auth键空间中。
如果使用此角色管理器,请增加system_auth键空间复制因子。
CassandraRoleManager
●roles_validity_in_ms
角色缓存的有效期(获取授权角色可能是一个昂贵的操作,取决于角色管理器,CassandraRoleManager是一个示例)授予的角色缓存为AuthenticatedUser中的已验证会话,并在此处指定的时间段后成为资格(async)重新加载。
默认为2000,设置为0以完全禁用缓存。
将自动禁用AllowAllAuthenticator。
2000
●roles_update_interval_in_ms
角色缓存的刷新间隔(如果已启用)。
在此时间间隔之后,缓存条目将有资格进行刷新。
在下一次访问时,将调度异步重载,并返回旧值,直到完成为止。
如果roles_validity_in_ms非零,那么这也必须是。
默认为与roles_validity_in_ms相同的值。
●permissions_validity_in_ms
权限缓存的有效期(获取权限可以是一个昂贵的操作,取决于授权人,CassandraAuthorizerisone示例)。
默认为2000,设置为0以禁用。
将为AllowAllAuthorizer自动禁用。
●permissions_update_interval_in_ms
权限缓存的刷新间隔(如果已启用)。
如果permissions_validity_in_ms非零,那么这也必须是。
默认为与permissions_validity_in_ms相同的值。
●credentials_validity_in_ms
凭证缓存的有效期。
此缓存与提供的IAuthenticator的PasswordAuthenticator实现紧密耦合。
如果配置了另一个IAuthenticator实现,则不会自动使用此缓存,因此以下设置将不起作用。
请注意,凭证以其加密形式缓存,因此在激活此缓存时可能会减少对基础表执行的查询数量,但可能无法显着降低单个身份验证尝试的延迟。
默认为2000,设置为0以禁用凭据缓存。
●credentials_update_interval_in_ms
凭据缓存的刷新间隔(如果已启用)。
如果credentials_validity_in_ms非零,那么这也必须是。
默认为与credentials_validity_in_ms相同的值。
●partitioner
分区器负责在集群中的节点之间分布行组(按分区键)。
你应该留下这个单独的新集群。
分区器不能在不重新加载所有数据的情况下更改,因此在升级时,应将其设置为您已在使用的相同分区器。
除了Murmur3Partitioner,包括用于向后兼容性的分区器包括RandomPartitioner,ByteOrderedPartitioner和OrderPreservingPartitioner。
org.apache.cassandra.dht.Murmur3Partitioner
●data_file_directories
Cassandra应该将数据存储在磁盘上的目录。
Cassandra将按照配置的压缩策略的粒度均匀地在它们之间传播数据。
如果未设置,则默认目录为$CASSANDRA_HOME/data/data。
#-/var/lib/cassandra/data
●commitlog_directory
提交日志。
当在磁性HDD上运行时,这应当是与数据目录分开的主轴。
如果未设置,则默认目录为$CASSANDRA_HOME/data/commitlog。
/var/lib/cassandra/commitlog
●cdc_enabled
在每个节点的基础上启用/禁用CDC功能。
这将修改用于写入路径分配拒绝的逻辑(标准:
从不拒绝。
cdc:
如果在cdc_raw_directory中的空间限制,则拒绝包含启用CDC的表的变动)。
false
●cdc_raw_directory
CommitlogSegments在flush时移动到此目录,如果cdc_enabled:
true,并且segment包含启用CDC的表的突变,那么这应该放在与数据目录分开的主轴上。
如果未设置,则默认目录为$CASSANDRA_HOME/data/cdc_raw。
/var/lib/cassandra/cdc_raw
disk_failure_policy
数据磁盘故障策略:
die
关闭gossip和客户端传输,并针对任何文件系统错误或单sstable错误终止JVM,替换节点。
●stop_paranoid
关闭gossip和客户端传输,即使是单稳定错误,也可以在启动期间杀死JVM以获取错误。
stop
关闭gossip和客户端传输,使节点有效死亡,但仍然可以通过JMX检查,在启动期间杀死JVM的错误。
●best_effort
停止使用故障磁盘并根据剩余的可用sstables响应请求。
这意味着您将在CL.ONE看到过时的数据!
ignore
Cassandra1.2之前版本忽略致命错误并让请求失败。
stop
commit_failure_policy
提交磁盘故障的策略:
关闭gossip和Thrift并杀死JVM,替换节点。
关闭gossip和Thrift,使节点有效死亡,但仍然可以通过JMX进行检查。
stop_commit
如Cassandra2.0.5之前版本关闭提交日志,但是继续读取服务收集信息。
忽略致命错误,并让批次失败
prepared_statements_cache_size_mb
本地协议预编译语句高速缓存的最大大小
有效值为“auto”(省略该值)或值大于0。
注意,指定太大的值将导致长时间运行的GC和可能的内存不足错误。
将值保持在堆的一小部分。
如果你经常看到“预编译语句在最后一分钟被丢弃,达到了超过限制”消息,第一步是调查这些消息的根本原因,并检查预编译语句是否被正确使用。
对可变部分使用绑定标记。
只有当你真的有更多的预编译语句在缓存中时才要修改默认值。
在大多数情况下,更改此值不是必需的。
不断重新编译预编译语句是一种性能损失。
默认值(“auto”):
是堆的1/256或10MB,以较大者为准
thrift_prepared_statements_cache_size_mb
Thrift预编译语句缓存的最大大小
如果你根本不使用Thrift,那么将此值保留在“auto”是安全的。
有关详细信息,请参见上面的“prepared_statements_cache_size_mb”的描述。
key_cache_size_in_mb
内存中密钥缓存的最大大小。
每个键缓存中保存1个查找,每个行缓存中至少保存2个查找。
密钥缓存所保存数据的生存时间非常短暂,因此它适用于缓存大数字。
行高速缓存节省了更多的时间,但必须包含整个行,所以它空间密集型。
如果你有热行或静态行,最好只使用行缓存。
注意:
如果减小大小,您可能无法在启动时加载最热键。
默认值为空,设置为“自动”后是堆的5%或100MB,以较小者为准。
设置为0可禁用密钥缓存。
key_cache_save_period
Cassandra保存的密钥缓存持续时间(以秒为单位)。
缓存保存到saved_caches_directory,并在配置文件中指定。
保存的高速缓存大大提高了冷启动速度,并且在密钥高速缓存方面I/O相对便宜。
行高速缓存更昂贵,并且使用有限。
默认值是14400或4小时.
14400
key_cache_keys_to_save
密钥缓存中要保存的密钥数默认情况下禁用,意味着所有密钥都将保存
100
row_cache_class_name
行缓存实现类名。
可用实现:
org.apache.cassandra.cache.OHCProvider
完全堆外行缓存实现(默认)。
org.apache.cassandra.cache.SerializingCacheProvider
这是先前版本Cassandra中可用的行缓存实现。
org.apache.cassandra.cache.OHCProvider
row_cache_size_in_mb
请注意,OHC缓存实现需要一些额外的堆外存储器来管理映射结构和一些在运行期间在缓存条目可以针对缓存容量计算之前/之后的运行中的内存。
这个开销通常比整个容量小。
不要指定更多的内存,系统在最坏的情况下可以承受,并留下一些空间用于操作系统块级缓存。
不要让你的系统交换。
默认值为0,以禁用行缓存。
0
row_cache_save_period
Cassandra保存的行缓存持续时间(以秒为单位)。
默认值为0,禁用保存行高速缓存
row_cache_keys_to_save
来自行缓存的键的数量(默认值是0),表示所有键都将被保存
默认:
counter_cache_size_in_mb
内存中计数器高速缓存的最大大小。
计数器高速缓存有助于减少计数器锁对热计数器单元的争用。
在RF=1的情况下,计数器高速缓存命中将导致Cassandra在完全写入之前跳过读取。
在RF>
1的情况下,计数器缓存命中仍将有助于减少锁定保持的持续时间,帮助热计数器单元更新,但不允许完全跳过读取。
只有计数器单元的本地(时钟,计数)元组保存在存储器中,而不是整个计数器,因此它消耗的资源相对较少。
默认值为空,使其为“auto”(堆的2.5%和50MB中较小的值)。
设置为0以禁用计数器高速缓存。
如果执行计数器删除并依赖于低gcgs,则应禁用计数器高速缓存。
counter_cache_save_period
Cassandra应保存计数器缓存(仅keys)持续时间(以秒为单位)。
默认值为7200或2小时。
7200
counter_cache_keys_to_save
计数器缓存中键的数量,默认禁用,意味着所有键都将被保存
saved_caches_directory
保存缓存的位置如果未设置,默认目录为$CASSANDRA_HOME/data/saved_caches。
/var/lib/cassandra/saved_caches
commitlog_sync
commitlog_sync可以是“periodic”或“batch”。
在批处理模式下,Cassandra不会进行ack写操作,直到提交日志已经同步到磁盘。
它将在同步期间等待commitlog_sync_batch_window_in_ms毫秒。
这个窗口应该保持简短,因为写入线程将无法在等待时执行额外的工作。
(基于同样的原因,您可能需要增加concurrent_writes。
)
batch
commitlog_sync_batch_window_in_ms
另一个选项是“periodic”,该选项可以立即执行写入并且每隔commitlog_sync_period_in_ms毫秒对Commitlog进行简单的同步。
periodic
commitlog_sync_period_in_ms
commitlog_segment_size_in_mb
各个commitlog文件段的大小。
一旦提交日志段中的所有数据(可能来自系统中的每个列系统)已被刷新到sstables,那么它可以被归档,删除或循环。
默认大小是32,32基本上是符合所有正常情况下的使用,但如果您归档commitlog段(请参阅commitlog_archiving.properties),那么您可能需要更精细的归档粒度;
8或16MB是合理的。
最大突变大小也可以通过cassandra.yaml中的max_mutation_size_in_kb设置进行配置。
默认值为commitlog_segment_size_in_mb*1024的一半。
如果明确设置了max_mutation_size_in_kb,则必须将commitlog_segment_size_in_mb设置为至少两倍大小max_mutation_size_in_kb/1024
32
commitlog_compression
应用压缩提交日志。
如果省略,提交日志将被解压缩。
支持LZ4,Snappy和Deflate压缩机。
seed_provider
任何实现Seed的类都提供程序接口并且具有采用Map<
String,String>
参数的构造函数的类。
#Addressesofhoststhataredeemedcontactpoints.
#Cassandranodesusethislistofhoststofindeachotherandlearn
#thetopologyofthering.Youmustchangethisifyouarerunning
#multiplenodes!
-class_name:
org.apache.cassandra.locator.SimpleSeedProvider
parameters:
#seedsisactuallyacomma-delimitedlistofaddresses.
#Ex:
"
<
ip1>
<
ip2>
ip3>
"
-seeds:
127.0.0.1"
concurrent_reads
对于具有比内存可容纳数据更多的数据的工作负载,Cassandra的瓶颈将是需要从磁盘提取数据的读取。
“concurrent_reads”应该设置为(16*number_of_drives),以便降低堆栈中排队的操作,操作系统和驱动器可以对它们重新排序。
这同样适用于“concurrent_counter_writes”,因为计数器写入在递增和写回它们之前读取当前值。
另一方面,由于写入几乎没有IO限制,“concurrent_writes”的理想数量取决于系统中的核心数;
(8*number_of_cores)是一个好的经验法则。
concurrent_writes
concurrent_counter_writes
concurrent_materialized_view_writes
对于物化视图写入,由于涉及到读取,因此这应该受到并发读取或并发写入数量的限制。
file_cache_size_in_mb
用于sstable块缓存和缓冲池的最大内存。
其中32MB保留用于池缓冲区,其余的用作保存未压缩sstable块的高速缓存。
默认为堆的1/4或512MB的较小值。
此池是在堆外分配的,因此除了为堆分配的内存之外。
缓存还具有堆上开销,每个块大约为128字节(即如果使用默认的64k块大小,则为保留大小的0.2%)。
内存只在需要时分配。
512
buffer_pool_use_heap_if_exhausted
当sstable缓冲池耗尽时,即当它已超过最大内存file_cache_size_in_mb时,它将指示是否分配on或off堆的标志,超过它将不会缓存缓冲区,而是根据请求分配。