Cassandra集群搭建

1,931 阅读2分钟

这是我参与8月更文挑战的第7天,活动详情查看:8月更文挑战

简介

Cassandra特性:各节点数据不同,各个数据中心数据相同

Cassandra安装

官方安装文档

cassandra.apache.org/doc/latest/…

Docker方式(自己学习推荐)

docker pull cassandra

二进制文件tar.gz方式(生产推荐)

#检查是否拥有java环境
java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~16.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

2.cassandra.apache.org/download/下载对应版本并 使用tar -zxvf命令解压 得到文件夹apache-cassandra-3.11.6(目前最新版本为3.11.10)

tar -zxvf apache-cassandra-3.11.10-bin.tar.gz
​
mv apache-cassandra-3.11.10  cassandra

3.增加文件目录

#创建数据目录
mkdir -p /root/app/cassandra/data
#创建日志目录
mkdir -p /root/app/cassandra/commitlog
#创建缓存目录
mkdir -p /root/app/cassandra/saved_caches

4.修改第一台服务器172.16.77.26 配置文件 cassandra/conf/cassandra.yaml

#集群名称,同集群名称相同

cluster_name: '集群名称'
#数据目录
data_file_directories:
​
   - /root/app/cassandra/data
     #日志目录
     commitlog_directory: /root/app/cassandra/commitlog
     #缓存目录
     saved_caches_directory: /root/app/cassandra/saved_caches
     #集群种子节点ip,新加入的节点从种子节点同步数据,可为多个,中间逗号分隔
​
- seeds: "172.16.77.26,172.16.77.27,172.16.77.28"
  #监听地址(本机ip或主机名)
  listen_address: 172.16.77.26
  #rpc地址(本机ip或0.0.0.0)
  rpc_address: 172.16.77.26
  #如果rpc_address设置为0.0.0.0,则放开此行注释
  broadcast_rpc_address: 1.2.3.4

5.修改第二台 服务器 172.16.77.27 配置文件 cassandra/conf/cassandra.yaml

cluster_name: '集群名称'
#数据目录
data_file_directories:
     - /root/app/cassandra/data
#日志目录
commitlog_directory: /root/app/cassandra/commitlog
#缓存目录
saved_caches_directory: /root/app/cassandra/saved_caches
#集群种子节点ip,新加入的节点从种子节点同步数据,可为多个,中间逗号分隔
​
- seeds: "172.16.77.26,172.16.77.27,172.16.77.28"
  #监听地址(本机ip或主机名)
  listen_address: 172.16.77.27
  #rpc地址(本机ip或0.0.0.0)
  rpc_address: 172.16.77.27
  #如果rpc_address设置为0.0.0.0,则放开此行注释
  broadcast_rpc_address: 1.2.3.4
endpoint_snitch 对于跨数据中心的集群,此参数的值必须为GossipingPropertyFileSnitch;如果为SimpleSnitch,所有节点都会加入一个数据中心。

如果有其他节点则照此规则继续

6.配置成功后 启动节点命令如下:

[root@localhost cassandra]# bin/cassandra -R

(如果在root用户的话要加-R 否则报错)

Idea 链接 cassandra

  1. idea 右侧有database 则直接打开 ,没有的话 view ->tool windows ->database
  2. data sourse -> apache cassandra
  3. 填写相关信息 下载资源直连即可

Spring Boot操作Cassandra

application.yml

spring:
  data:
    cassandra:
      keyspace-name: ks_test  #keyspace名称
      contact-points: {ip1,ip2,ip3}  #
      session-name: MyCluster  #集群名称
      port: 9042  #默认的端口
      local-datacenter: datacenter1  #默认的数据中心
@Data
@Table("t_test")
public class Ttest {
    @PrimaryKeyColumn(name = "patient_id", type = PrimaryKeyType.PARTITIONED)
    private Integer patient_id;
    @PrimaryKeyColumn(name = "id", type = PrimaryKeyType.PARTITIONED)  //复合主键
    private Integer id;

    private String details;
    private UUID date;//因为Cassandra的date是基于事件的UUID
					  
}
public interface TtestRecordRepository extends JpaRepository<Ttest, Integer> {
    List<Ttest> findAllById(Integer id);
}
@Test
public void test2() {
    log.info("开始准备数据");
    List<Ttest> list = new ArrayList<>();

    Long l = 16l;
    UUID date = new UUID(l,l);
    for (int i = 10; i < 1000; i++) {
        Ttest ttest = new Ttest();
        ttest.setPatient_id(i);
        ttest.setId(i);
        ttest.setDetails("123312");
        list.add(ttest);
    }
    log.info("准备数据完毕");
    log.info("开始插入数据");
    ttestRecordRepository.saveAll(list);
    log.info("插入数据完毕");
    log.info("插入"+ttestRecordRepository.count()+"数据成功");

}

官方文档:

cassandra.apache.org/doc/latest/…

在线体验网址:

katacoda.com/datastax/co…