博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spotify开源其Cassandra编排工具cstar
阅读量:6589 次
发布时间:2019-06-24

本文共 2268 字,大约阅读时间需要 7 分钟。

Spotify最近开源了其Cassandra编排工具。Cstar是一个命令行工具,用于在Cassandra集群中的所有主机上运行脚本。

\\

Cstar的出现是为了在Cassandra节点中运行shell命令。这些shell命令通常与性能、安全性、一致性、升级等相关。

\\

据Spotify称,2017年,Spotify Cassandra fleet达到了3000个节点;从那时起,安全高效地运行shell命令的需求变得越来越迫切。比如,整个Cassandra fleet的计划升级就是其中一项噩梦般的任务,该过程需要以下步骤:

\\
  • 清理所有快照(以便有足够的磁盘空间来完成升级)\
  • 生成一个新的快照(以便可以回滚)\
  • 禁止puppet自动运行\
  • 停止Cassandra进程\
  • 从git库的一个自定义分支运行puppet,以便可以升级程序包\
  • 再次启动Cassandra进程\
  • 把system.schema_columnfamilies升级为JSON格式\
  • 运行 `nodetool upgradesstables`,根据节点上数据量的不同,这个过程可能需要几个小时才能完成\
  • 删除回滚快照\

此外,在操作Cassandra fleet时还存在一系列其他相关的问题,如网络故障、ssh连接中断、cpu密集型操作、Cassandra进程/节点重启而不影响性能和可用性,或部分完成执行处理(任务仅在某些节点中成功)。

\\

在Spotify的早期,在Cassandra节点上运行命令的最常见方式是在多个终端中键入命令。

\\

Cstar的目标是解决这些问题。要使用cstar,所有涉及到的机器都应该使用类UNIX系统,如OSX或Linux,并且运行cstar的机器必须有python 3。

\\

Cstar通过cstar命令运行,如下所示:

\\
\# cstar COMMAND [HOST-SPEC] [PARAMETERS]
\\

HOST-SPEC指定在哪个节点上运行脚本。指定HOST-SPEC有以下三种方式:

\\
  • \\t\--seed-host告诉cstar连接到特定的主机,从那里获取完整的环型拓扑,然后在集群中的所有节点上运行脚本;\\t\
  • \\t\--host指定一个准确的主机列表;\\t\
  • \\t\--host-file指向一个文件名,其中包含换行符分割的主机列表。\\t\
\\\对于在Cassandra主机上运行的每个命令,cstar会自动保存标准输出、错误和退出状态。结果(作业状态)保存在运行cstar的计算机上的用户主目录.cstar/jobs/JOB_ID/HOSTNAME下。\\\

下面是集群上的一些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集群,然后重新启动节点,最后升级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\

转载地址:http://bwuio.baihongyu.com/

你可能感兴趣的文章
超过响应缓冲区限制
查看>>
ubuntu 下安装 matplotlib
查看>>
webservice的几个简单概念
查看>>
underscore 1.7.0 api
查看>>
C# CheckedListBox控件的使用方法
查看>>
spring Transaction Management --官方
查看>>
iOS开发-清理缓存功能的实现
查看>>
IS_ERR、PTR_ERR、ERR_PTR
查看>>
html5 canvas 奇怪的形状垂直渐变
查看>>
mac java环境
查看>>
lamp 一键安装
查看>>
SQL Server 2008 收缩日志(log)文件
查看>>
UICollectionView基础
查看>>
SSAS中CUBE行权限数据级权限控制
查看>>
PHP接入umeditor(百度富文本编辑器)
查看>>
如何解决ORA-12547: TNS:lost contact错
查看>>
android学习记录(三)百度地图错误---只有一个电话显示帧,没有地图内容。
查看>>
BZOJ2794 : [Poi2012]Cloakroom
查看>>
Swift——(两)Swift访问元组
查看>>
【Eclipse】安装subclipse的Eclipse插件
查看>>