Cassandra集群搭建

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

简介

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

Cassandra安装

官方安装文档spring

cassandra.apache.org/doc/latest/…docker

Docker方式(本身学习推荐)

docker pull cassandraapache

二进制文件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)ubuntu

tar -zxvf apache-cassandra-3.11.10-bin.tar.gz
​
mv apache-cassandra-3.11.10  cassandra
复制代码

3.增长文件目录windows

#建立数据目录
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.yamlmarkdown

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…

相关文章
相关标签/搜索