Spotify开源其Cassandra编排工具cstar
Spotify最近開源了其Cassandra編排工具cstar。Cstar是一個命令行工具,用于在Cassandra集群中的所有主機上運行腳本。
\\Cstar的出現是為了在Cassandra節(jié)點中運行shell命令。這些shell命令通常與性能、安全性、一致性、升級等相關。
\\據Spotify稱,2017年,Spotify Cassandra fleet達到了3000個節(jié)點;從那時起,安全高效地運行shell命令的需求變得越來越迫切。比如,整個Cassandra fleet的計劃升級就是其中一項噩夢般的任務,該過程需要以下步驟:
\\- 清理所有快照(以便有足夠的磁盤空間來完成升級)\
- 生成一個新的快照(以便可以回滾)\
- 禁止puppet自動運行\(zhòng)
- 停止Cassandra進程\
- 從git庫的一個自定義分支運行puppet,以便可以升級程序包\
- 再次啟動Cassandra進程\
- 把system.schema_columnfamilies升級為JSON格式\
- 運行 `nodetool upgradesstables`,根據節(jié)點上數據量的不同,這個過程可能需要幾個小時才能完成\
- 刪除回滾快照\
此外,在操作Cassandra fleet時還存在一系列其他相關的問題,如網絡故障、ssh連接中斷、cpu密集型操作、Cassandra進程/節(jié)點重啟而不影響性能和可用性,或部分完成執(zhí)行處理(任務僅在某些節(jié)點中成功)。
\\在Spotify的早期,在Cassandra節(jié)點上運行命令的最常見方式是在多個終端中鍵入命令。
\\Cstar的目標是解決這些問題。要使用cstar,所有涉及到的機器都應該使用類UNIX系統(tǒng),如OSX或Linux,并且運行cstar的機器必須有python 3。
\\Cstar通過cstar命令運行,如下所示:
\\\# cstar COMMAND [HOST-SPEC] [PARAMETERS]\\HOST-SPEC指定在哪個節(jié)點上運行腳本。指定HOST-SPEC有以下三種方式:
\\- \\t\--seed-host告訴cstar連接到特定的主機,從那里獲取完整的環(huán)型拓撲,然后在集群中的所有節(jié)點上運行腳本;\\t\
- \\t\--host指定一個準確的主機列表;\\t\
- \\t\--host-file指向一個文件名,其中包含換行符分割的主機列表。\\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\\\\下面是一個腳本示例,該腳本通過在不同的分支上運行puppet來升級Cassandra集群,然后重新啟動節(jié)點,最后升級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位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Spotify开源其Cassandra编排工具cstar的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 第71天 mariadb b
- 下一篇: mysql按某一字段分组取最大(小)值所