Cassandra學習總結

2021-07-11 04:29:33 字數 1816 閱讀 1678

一.cassandra簡介

cassandra是一套高度可擴充套件、最終一致、分布式的結構化鍵值儲存系統。

cassandra由一堆資料庫節點共同構成的乙個分布式網路服務,對cassandra 的乙個寫操作,會被複製到其他節點上去,對cassandra的讀操作,也會被路由到某個節點上面去讀取。

對於乙個cassandra群集來說,只管在群集裡面新增節點。

二.架構

1.介紹

點對點分布式系統,集群中各節點平等,資料分布於集群中各節點,各節點間每秒交換一次資訊。

每個節點的commit log捕獲寫操作來確保資料永續性。資料先被寫入memtable記憶體中的資料結構,待該結構滿後資料被寫入sstable-硬碟中的資料檔案。

所有的寫內容被自動在集群中分割槽並複製。

授權使用者可連線至任意資料中心的任意節點,並通過類似sql的cql查詢資料。

集群中,乙個應用一般包含乙個keyspace,乙個keyspace中包含多個表。

客戶端連線到某一節點發起讀或寫請求時,該節點充當客戶端應用與擁有相應資料的節點間的協調者(coordinator)以根據集群配置確定環中的哪個節點當獲取這個請求。

2.節點間通訊

cassandra使用點對點通訊協議gossip在集群中的節點間交換位置和狀態資訊。gossip程序每秒執行一次,與至多3個其他節點交換資訊,這樣所有節點可很快了解集群中的其他節點資訊。

3.資料複製和分發

cassandra中分發、複製同時進行。cassandra被設計為點對點系統,會建立資料的多個副本儲存在集群中的一組節點中。cassandra中資料被組織為表,由primary key標識,primary key決定資料將被儲存在哪個節點。

4.partitioner

在cassandra中,table的每行由唯一的primarykey標識,partitioner實際上為一hash函式用以計算primary key的token。cassandra依據這個token值在集群中放置對應的行。

5.snitches

提供網路拓撲資訊,用以確定向/從哪個資料中心或者網架寫入/讀取資料。

(1)所有節點需用相同的snitch;(2)集群中已插入資料後由更改了snitch則需執行一次fullrepair。

6.客戶端請求

client連線至節點並發出read/write請求時,該node充當client端應用與包含請求資料的節點(或replica)之間的協調者,它利用配置的partitioner和replicaplacement策略確定那個節點當獲取請求。

三.cassandra資料模型

1.column cassandra中最小的資料單元。它是乙個3元的資料型別,包含:name,value和timestamp。

2.supercolumn 可以將supercolumn想象成column的陣列,它包含乙個name,以及一系列相應的column。

3.columnfamily 包含了許多row的結構

4.keyspace 資料最外層所有的columnfamily都屬於某乙個keyspace。一般情況乙個程式應用只會有乙個keyspace。

cassandra資料模型的模型結構可以理解為巢狀的map:

四.cassandra的安裝使用

1.執行環境:

2.首先安裝jdk。

3.安裝python

4.安裝spark 

選擇版本

解壓設定許可權配置等

安裝成功後執行./cqlsh 測試

5.遇到的問題

cassandra學習筆記1 安裝篇

cassandra簡介 注 該段介紹來自baidu百科 cassandra是乙個混合型的非關係的資料庫,類似於google的bigtable。其主要功能比dynomite 分布式的key value儲存系統 更豐富,但支援度卻不如文件儲存mongodb 介於關聯式資料庫和非關聯式資料庫之間的開源產品...

Cassandra 基本操作

嘗試乙個新的軟體 跑通乙個簡單的demo是必須的,下面的教程是我見到的最簡單的乙個,特地無恥的抄襲一下,時間略久了。啟動cassandra之後,我們可以用cassandra的命令列來執行cassandra的基本操作 先啟動cassandra cli 連線到cassandra服務 test clust...

cassandra技術分享

背景 cassandras是由facebook的兩位工程開發出來的一款nosql資料庫。它兼有dynamo和bigtable的優點。主要有下面一些特點 安裝與配置 cassandra的安裝和配置都比較簡單。如果不做集群,直接把下下來的壓縮包解壓後,就可以使用。如果要做集群,那就需要配置conf目錄下...