Spotify开源其Cassandra编排工具cstar
Spotify最近開源了其Cassandra編排工具cstar。Cstar是一個(gè)命令行工具,用于在Cassandra集群中的所有主機(jī)上運(yùn)行腳本。
\\Cstar的出現(xiàn)是為了在Cassandra節(jié)點(diǎn)中運(yùn)行shell命令。這些shell命令通常與性能、安全性、一致性、升級(jí)等相關(guān)。
\\據(jù)Spotify稱,2017年,Spotify Cassandra fleet達(dá)到了3000個(gè)節(jié)點(diǎn);從那時(shí)起,安全高效地運(yùn)行shell命令的需求變得越來越迫切。比如,整個(gè)Cassandra fleet的計(jì)劃升級(jí)就是其中一項(xiàng)噩夢(mèng)般的任務(wù),該過程需要以下步驟:
\\- 清理所有快照(以便有足夠的磁盤空間來完成升級(jí))\
- 生成一個(gè)新的快照(以便可以回滾)\
- 禁止puppet自動(dòng)運(yùn)行\(zhòng)
- 停止Cassandra進(jìn)程\
- 從git庫(kù)的一個(gè)自定義分支運(yùn)行puppet,以便可以升級(jí)程序包\
- 再次啟動(dòng)Cassandra進(jìn)程\
- 把system.schema_columnfamilies升級(jí)為JSON格式\
- 運(yùn)行 `nodetool upgradesstables`,根據(jù)節(jié)點(diǎn)上數(shù)據(jù)量的不同,這個(gè)過程可能需要幾個(gè)小時(shí)才能完成\
- 刪除回滾快照\(chéng)
此外,在操作Cassandra fleet時(shí)還存在一系列其他相關(guān)的問題,如網(wǎng)絡(luò)故障、ssh連接中斷、cpu密集型操作、Cassandra進(jìn)程/節(jié)點(diǎn)重啟而不影響性能和可用性,或部分完成執(zhí)行處理(任務(wù)僅在某些節(jié)點(diǎn)中成功)。
\\在Spotify的早期,在Cassandra節(jié)點(diǎn)上運(yùn)行命令的最常見方式是在多個(gè)終端中鍵入命令。
\\Cstar的目標(biāo)是解決這些問題。要使用cstar,所有涉及到的機(jī)器都應(yīng)該使用類UNIX系統(tǒng),如OSX或Linux,并且運(yùn)行cstar的機(jī)器必須有python 3。
\\Cstar通過cstar命令運(yùn)行,如下所示:
\\\# cstar COMMAND [HOST-SPEC] [PARAMETERS]\\HOST-SPEC指定在哪個(gè)節(jié)點(diǎn)上運(yùn)行腳本。指定HOST-SPEC有以下三種方式:
\\- \\t\--seed-host告訴cstar連接到特定的主機(jī),從那里獲取完整的環(huán)型拓?fù)?#xff0c;然后在集群中的所有節(jié)點(diǎn)上運(yùn)行腳本;\\t\
- \\t\--host指定一個(gè)準(zhǔn)確的主機(jī)列表;\\t\
- \\t\--host-file指向一個(gè)文件名,其中包含換行符分割的主機(jī)列表。\\t\
下面是集群上的一些CLI命令示例:
\\\# cstar run --command='service cassandra restart' --seed-host some-host\# cstar puppet-upgrade-cassandra --seed-host some-host --puppet-branch=cass-2.2-upgrade\\\\下面是一個(gè)腳本示例,該腳本通過在不同的分支上運(yùn)行puppet來升級(jí)Cassandra集群,然后重新啟動(dòng)節(jié)點(diǎn),最后升級(jí)sstable文件:\\\# !/usr/bin/env bash\# C* cluster-parallel: true \# C* dc-parallel: true \# C* strategy: topology \# C* description: Upgrade one or more clusters by switching to a different puppet branch \# C* argument: {\"option\":\"--snapshot-name\ 與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Spotify开源其Cassandra编排工具cstar的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 第71天 mariadb b
- 下一篇: mysql按某一字段分组取最大(小)值所