Cassandra 集群配置

 

集群机制

一致性哈希(数据一致性)

Token算法

Range数据库

Partitoner服务器

 

 

Gossip协议(流言,无中心获取领导者)

用于在环内节点之间传播状态信息网络

周期运行,每次在环中随机挑选一个对象节点,发起会话数据结构

每次会话传送三条消息函数

Phi增量故障检测算法spa

 

Snitch(机架感知)

复制策略

Cassandra的数据存储

  1) commit log: 保存对数据库的DML操做。记录的是操做动做,不是数据(redo)

    · 进行写操做时,首先要写commit logexcel

    · 只有操做被写入 commit log 的数据,才算写入成功对象

    · 当发生掉电,实例崩溃等问题的时候,可使用commit log 进行回复blog

  memtable:

    · 数据操做成功写入到 commit log后,就开始写入内存中的memtable

    · memtable中的数据达到必定阈值后,就开始写入硬盘中的 SSTable,而后内存中从新创建一个memtable接收下一批数据

    · 上述刷写过程是非阻塞的

    · 查询时先查询memtable

   SSTable:

    · 起源于Google的Bigtable

    · 墓碑: 删除数据并非物理删除,实际上打删除标记,软删除

    · 压紧: 对用户透明,数据库本身控制。(墓碑打标记行删除 / 重建索引)

    · Bloomfilter(布隆过滤器):相比其余的数据结构,Bloom Filter再空间和时间方面都有巨大的优点,Bloom Filter存储空间和插入/查询时间都是常数。另外,Hash函数相互之间没有关系,方便由硬件并行实现,Bloom Filter不须要存储元素自己,再某些对保密要求很是严格的场合有优点。

  2) data:

  3) saved_caches:

 

集群配置

安装JAVA环境

部署Cassandra安装包

修改Cassandra配置文件,设置集群名

规划IP地址,设置做为seed的IP

决定snitch

Cassandra还能够支持多数据中心集群

修改其它可能的配置

启动Cassandra并加入集群

 

安装过程: 节点1

1、安装JAVA

2、设置JAVA_HOME环境变量

3、解压Cassandra安装包

4、建立/var/lib/cassandra和/var/log/cassandra目录并改变属主,若是目录已经存在先进行清理

5、修改配置文件 conf/cassandra.yaml

cluster_name: 'cluster01'

num_tokens: 256

seeds: "192.168.1.100"        --种子机

listen_address: 192.168.1.100

rpc_address: 192.168.1.100

rpc_port: 9160

rpc_keepalive: true

endpoint_snitch: SimpleSnitch  --假设全部服务器都在一个机架

 

6、启动Cassandra

 

 

安装过程:节点2

1、安装过程与节点1相似

2、修改配置文件略有不一样

3、Seeds写节点1的IP

4、启动节点2

 

副本放置策略

简单策略

旧网络拓扑策略(机架感知设定)

网络拓扑策略 (用户本身设定)

  Snitch(指定机架结构)

    · Simple Snitch:经过IP地址判断

    · PropertyFileSnitch: 指定IP属于哪一个数据中心,哪一个机架

副本因子

  建立keyspace时候指定

  create keyspace excelsior with replication = {'class':'SimpleStrategy', 'replication_factor' : 3};

  create keyspace "Excalibur" with replication = {'class':'NetworkTopologyStrategy','dc1':3,'dc2':2};

相关文章
相关标签/搜索