详解CASSANDRA0.7配置文件

来源:互联网 发布:北京赛车源码 编辑:程序博客网 时间:2024/06/04 18:54

Cassandra中所有的运行配置都是在配置文件cassandra.yaml中进行配置。

下面依次讲解Cassandra中的配置项:

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_directoriescommitlog_directory设置在不同的磁盘中,这样有利于分散整体系统的磁盘I/O的压力。

commitlog_directory

commitlog文件在磁盘中的存储位置。

如果可能,可以考虑将data_file_directoriescommitlog_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_withColumn名称的排序规则。可选的项为:

1.         AsciiType

2.         UTF8Type

3.         LexicalUUIDType

4.         TimeUUIDType

5.         LongType

6.         IntegerType

compare_subcolumns_withSuperColumn下的Column名称的排序规则。可选的项为:

1.         AsciiType

2.         UTF8Type

3.         LexicalUUIDType

4.         TimeUUIDType

5.         LongType

6.         IntegerType

rows_cachedrow缓存的数量,可以为整数或者百分比。

keys_cachedkey缓存的数量,可以为整数或者百分比。

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 Familymemtable最大的生存时间。

memtable_throughput_in_mb:定义Column Familymemtable最大缓存的数据大小。

memtable_operations_in_millions:定义Column Familymemtable最大缓存的数据条数。

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

文章来源:逖靖寒的世界 http://www.cnblogs.com/gpcuster/archive/2010/11/12/1875388.html 


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 冬天骑电动车冷怎么办 彩钢房冬天太冷怎么办 骑电车不会转弯怎么办 骑电车技术不好怎么办 骑自行车左右扭怎么办 面试不想去了怎么办 面试电话没接到怎么办 上班时间接到猎头电话怎么办 win8电脑软件打不开怎么办 忘记申报个税怎么办 辞职后考研档案怎么办 私企辞职后档案怎么办 工人档案丢了怎么办 事业单位试用期考核不合格怎么办 工厂不好招人怎么办 办理入职手续怎么办 管理员工不加班怎么办 没有毕业证怎么办入职 不想加班的员工怎么办 邮寄辞职信拒收怎么办 办理退休档案不见了怎么办 办理退休没有档案怎么办 办理退休没有个人档案怎么办 档案被学校丢失怎么办 手动挡汽车脱档怎么办 辞职工作没人交接怎么办 ipad反复重启怎么办 ipad老是重启怎么办 苹果8死机了怎么办 平板突然死机了怎么办 平板卡死机了怎么办 小米ipad死机了怎么办 ipad死机了黑屏怎么办 小米4死机了怎么办 小米平板黑屏是怎么办? ipad死机怎么办不能关机 ipad突然死机了怎么办 京东买ipad坏了怎么办 ipad开机键失灵怎么办 苹果手机按键坏了怎么办 ipad使用中黑屏怎么办