Cassandra基礎(1)—— Casasndra集群搭建

Cassandra基礎(1)—— Casasndra集群搭建
Cassandra基礎(2)—— Casasndra使用及其數(shù)據(jù)類型

本文將介紹Cassandra的搭建和使用

單節(jié)點Cassandra

Cassandra最大的特點就是分布式敛腌,所以啟動單節(jié)點Cassandra不論是開發(fā)還是實戰(zhàn)都沒有意義惫皱,都是多節(jié)點尤莺。單節(jié)點最大的作用就是安裝Cassandra,可以提供cqlsh命令行工具缝裁,能夠作為客戶端去連接Cassandra。

安裝

方式一:按官網(wǎng)教程安裝韩脑,提供Debian和RPM兩種包.
方式二:在mac上,可以使用brew工具安裝段多,命令如下:

brew install cassandra 
/*
安裝后的目錄:  
安裝目錄:/usr/local/Cellar/cassandra/  
Properties: /usr/local/etc/cassandra  
Logs: /usr/local/var/log/cassandra  
Data: /usr/local/var/lib/cassandra/data
*/

多節(jié)點Cassandra

Docker 搭建

官方docker鏡像默認不啟用任何安全驗證壮吩,且未提供相應的env variables。
有兩種方式去開啟認證:
方式一:在官方鏡像的基礎上制作自己的鏡像鸭叙,繼承官方鏡像,并用RUN命令開啟相關配置沈贝,再build得到開啟了認證的新鏡像。
編寫Dockerfile如下:

FROM cassandra:3.11.2

# Authentication backend, implementing IAuthenticator; used to identify users
# Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthenticator,
# PasswordAuthenticator}.
#
# - AllowAllAuthenticator performs no checks - set it to disable authentication.
# - PasswordAuthenticator relies on username/password pairs to authenticate
#   users. It keeps usernames and hashed passwords in system_auth.roles table.
#   Please increase system_auth keyspace replication factor if you use this authenticator.
#   If using PasswordAuthenticator, CassandraRoleManager must also be used (see below)
RUN echo "authenticator: PasswordAuthenticator" >> /etc/cassandra/cassandra.yaml

# Authorization backend, implementing IAuthorizer; used to limit access/provide permissions
# Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthorizer,
# CassandraAuthorizer}.
#
# - AllowAllAuthorizer allows any action to any user - set it to disable authorization.
# - CassandraAuthorizer stores permissions in system_auth.role_permissions table. Please
#   increase system_auth keyspace replication factor if you use this authorizer.
RUN echo "authorizer: CassandraAuthorizer" >> /etc/cassandra/cassandra.yaml

# Part of the Authentication & Authorization backend, implementing IRoleManager; used
# to maintain grants and memberships between roles.
# Out of the box, Cassandra provides org.apache.cassandra.auth.CassandraRoleManager,
# which stores role information in the system_auth keyspace. Most functions of the
# IRoleManager require an authenticated login, so unless the configured IAuthenticator
# actually implements authentication, most of this functionality will be unavailable.
#
# - CassandraRoleManager stores role data in the system_auth keyspace. Please
#   increase system_auth keyspace replication factor if you use this role manager.
RUN echo "role_manager: CassandraRoleManager" >> /etc/cassandra/cassandra.yaml

然后build,得到加入開啟認證相關環(huán)境變量的cassandra鏡像学歧。

docker build -t cassandra:3.11.2_auth .

用該鏡像啟動的容易的cassandra.yaml文件內有我們設置的環(huán)境變量。

接下來就可以進行集群搭建了:

// 先啟動種子節(jié)點
docker run --name cassandra_node1 -d -v /var/docker-volume/cassandra:/var/lib/cassandra -e CASSANDRA_CLUSTER_NAME="test_cassandra_cluster" -e CASSANDRA_BROADCAST_ADDRESS=172.31.18.97 -p 7000:7000 -p 9160:9160 -p 9042:9042 docker.sunseaiot.cn/cassandra:3.11.2_auth
// 再啟動非種子節(jié)點
docker run --name cassandra_node2 -d -v /var/docker-volume/cassandra:/var/lib/cassandra -e CASSANDRA_CLUSTER_NAME="test_cassandra_cluster" -e CASSANDRA_BROADCAST_ADDRESS=172.31.19.18 -e CASSANDRA_SEEDS=172.31.18.97 -p 7000:7000 -p 9160:9160 -p 9042:9042 docker.sunseaiot.cn/cassandra:3.11.2_auth
docker run --name cassandra_node3 -d -v /var/docker-volume/cassandra:/var/lib/cassandra -e CASSANDRA_CLUSTER_NAME="test_cassandra_cluster" -e CASSANDRA_BROADCAST_ADDRESS=172.31.16.140 -e CASSANDRA_SEEDS=172.31.18.97 -p 7000:7000 -p 9160:9160 -p 9042:9042 docker.sunseaiot.cn/cassandra:3.11.2_auth

// 查看集群狀態(tài)
nodetool status 

// 集群搭好后袁铐,可用默認的超級用戶Cassandra(密碼cassandra)登陸
cqlsh 172.31.18.97 -u cassandra -p cassandra

// 然后提升`system_auth`keyspace的復制因子(通常為節(jié)點數(shù))
ALTER KEYSPACE system_auth WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};

// 創(chuàng)建一個新的超級用戶替代默認的超級用戶cassandra(密碼cassandra)
CREATE USER sunseaiot WITH PASSWORD 'sunseaiot' SUPERUSER ;

// 最后切換用戶登陸伺帘,刪除默認超級用戶
DROP USER cassandra;

更多細節(jié)參考文檔

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末伪嫁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子张咳,更是在濱河造成了極大的恐慌帝洪,老刑警劉巖脚猾,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異砰奕,居然都是意外死亡提鸟,警方通過查閱死者的電腦和手機军援,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門胸哥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人空厌,你說我怎么就攤上這事〕案” “怎么了揩瞪?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長壮韭。 經(jīng)常有香客問我,道長喷屋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任狱庇,我火速辦了婚禮恶耽,結果婚禮上密任,老公的妹妹穿的比我還像新娘偷俭。我一直安慰自己,他們只是感情好淹遵,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著透揣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪辐真。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天恨闪,我揣著相機與錄音,去河邊找鬼咙咽。 笑死淤年,一個胖子當著我的面吹牛钧敞,可吹牛的內容都是我干的麸粮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼愚战,長吁一口氣:“原來是場噩夢啊……” “哼齐遵!你這毒婦竟也來了寂玲?” 一聲冷哼從身側響起梗摇,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤伶授,失蹤者是張志新(化名)和其女友劉穎断序,沒想到半個月后糜烹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡诸迟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了亮蒋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妆毕。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡笛粘,死狀恐怖趁怔,靈堂內的尸體忽然破棺而出薪前,到底是詐尸還是另有隱情,我是刑警寧澤示括,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布垛膝,位于F島的核電站鳍侣,受9級特大地震影響吼拥,放射性物質發(fā)生泄漏。R本人自食惡果不足惜凿可,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一枯跑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧敛助,春花似錦、人聲如沸辜腺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽百匆。三九已至砌些,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間仑荐,已是汗流浹背纵东。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留偎球,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓袍冷,卻偏偏與公主長得像猫牡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子淌友,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355