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…

相關文章
相關標籤/搜索