时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

Spotify 开源其 Cassandra 编排工具 cstar

  • 2018-10-15
  • 本文字数:1756 字

    阅读完需:约 6 分钟

Spotify 最近开源了其 Cassandra 编排工具 cstar 。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 有以下三种方式:

  • –seed-host 告诉 cstar 连接到特定的主机,从那里获取完整的环型拓扑,然后在集群中的所有节点上运行脚本;

  • –host 指定一个准确的主机列表;

  • –host-file 指向一个文件名,其中包含换行符分割的主机列表。

对于在 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", "name":"SNAPSHOT_NAME", "description":"Name of pre-upgrade snapshot", "default":"preupgrade"}
# C* argument: {"option":"--puppet-branch", "name":"PUPPET_BRANCH", "description":"Name of puppet branch to switch to", "required":true}
nodetool snapshot -t $SNAPSHOT_NAME
sudo puppet --branch $PUPPET_BRANCH
sudo service cassandra restart
nodetool upgradesstables

Cstar 库中提供了 cstar 命令的完整列表和更多信息。 查看英文原文: Spotify Open Sources cstar: its Cassandra Orchestration Tool

2018-10-15 17:412633
用户头像

发布了 1008 篇内容, 共 438.1 次阅读, 收获喜欢 346 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

巧用机器学习托管服务,自动化合约处理从此不在话下!

亚马逊云科技 (Amazon Web Services)

AI/ML

动手训练属于自己的无人车,这个超强服务现已开源!

亚马逊云科技 (Amazon Web Services)

AI/ML

如何真正学习Go 语言

宇宙之一粟

golang 学习方法 Go 语言 12月日更

如何让用户给我们做推荐?

石云升

AARRR 产品思维 28天写作 12月日更

架构实战营模块七课后作业

Geek_99eefd

#架构实战营 「架构实战营」

深入浅出 OceanBase 运维之弹性扩缩容

OceanBase 数据库

直播 弹性扩容 OceanBase 开源

apacheunomi漏洞介绍及代码分析

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

有向无环图在新增节点时的环状检测

waitmoon

DAG

太香了,终于有人耗时1000小时打造出python从入门到精通全套路线图+视频+笔记

Java全栈架构师

Python 数据库 架构 面试 程序人生

业界福音!快来使用Amazon Transcribe服务减轻添加字幕的繁琐工序负担吧

亚马逊云科技 (Amazon Web Services)

AI/ML

即刻到位!快速落地 Amazon 智能工厂解决方案

亚马逊云科技 (Amazon Web Services)

AI/ML

25天,手码Python数据分析+八大核心项目实战25W字总结,我献出了我的膝盖

Java全栈架构师

Python 数据挖掘 程序员 架构 数据分析

YB时代即将来临,三问数据存储

脑极体

微众七年营造,ABCD“四梁八柱”建构数字时代的信任底座

脑极体

开源驱动未来 | 2021新一代人工智能院士高峰论坛暨Open/O启智开发者大会开源专场顺利召开

OpenI启智社区

人工智能 开源社区 启智开发者大会

使用 Amazon IoT 和 Amazon SageMaker 进行设备实时预测性维护

亚马逊云科技 (Amazon Web Services)

AI/ML

新能源当道,如何构建一个电动汽车电池告警预测平台?

亚马逊云科技 (Amazon Web Services)

AI/ML

SageMaker Neo优化目标检测模型加速推理

亚马逊云科技 (Amazon Web Services)

AI/ML

低代码实现探索(九)后台模型 json定义

零道云-混合式低代码平台

飞桨中国行——生产制造专场

百度大脑

人工智能

农业与科技结合?快来看Amazon Rekognition自定义标签的作用吧

亚马逊云科技 (Amazon Web Services)

AI/ML

重装上阵——Graviton2提升ElastiCache for Redis的性价比!

亚马逊云科技 (Amazon Web Services)

AI/ML

首次开源!一行代码轻松搞定中英文语音识别、合成、翻译核心功能!

百度大脑

人工智能

模块7作业

小何

「架构实战营」

Redis RDB 持久化详解

程序员历小冰

redis 持久化 28天写作 12月日更

53 K8S之资源监控与资源指标

穿过生命散发芬芳

k8s 28天写作 12月日更

☕【Java实战系列】「技术盲区」Double与Float的坑与解决办法以及BigDecimal的取而代之!

码界西柚

BigDecimal Java 开发 12月日更 Double和Float

在Amazon SageMaker中灵活使用多种存储服务

亚马逊云科技 (Amazon Web Services)

AI/ML

销售易携手DataPipeline,推动“实时感知-主动决策-客户成功”的变革!

DataPipeline数见科技

大数据 中间件 数据融合 数据迁移 数据管理

模块七作业

心怀架构

编写代码最应该做好的事情是什么?

李子捌

Java 28天写作 21天挑战 12月日更

Spotify开源其Cassandra编排工具cstar_DevOps & 平台工程_Diogo Carleto_InfoQ精选文章