50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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:412601
用户头像

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

关注

评论 1 条评论

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

Easydict for mac(简洁的翻译工具)v2.12.0激活版

Rose

DeepSeek们,会让文科无用吗?

脑极体

AI

团队协作的痛点:如何破解项目中任务责任不明确的困局

axe

项目管理 项目管理软件 项目协作 项目协作工具 办公工具

培训讲师管理系统(源码+文档+讲解+演示)

深圳亥时科技

AI 驱动的智能化单元测试生成:字节跳动的实践与创新

火山引擎开发者社区

CAD怎么偏移图形对象?详细教程来了!

在路上

cad cad看图 CAD看图王

数字水印系统(源码+文档+讲解+演示)

深圳亥时科技

见证时刻!智元发布首个通用具身基座模型——智元启元大模型(GO-1)

科技热闻

初步探索SQL Server 2025 AI相关能力

伤感汤姆布利柏

特斯拉、宇树、Figure AI核心供应链企业梳理与商业化壁垒,「汇丰银行」人形机器人研报解读

机器人头条

机器人 科技 人形机器人 具身智能

DeepSeek的开源之路:一文读懂从V1-R1的技术发展,见证从开源新秀到推理革命的领跑者

京东科技开发者

面试官:在项目中用过责任链模式吗?

Geek_e3e86e

编程 计算机

"打通设计与研发效率最后一公里”-云事业部前端团队 D2C/C2D落地经验分享

京东科技开发者

首次覆盖超 11 类真实编程场景!豆包大模型团队开源代码大模型全新基准

火山引擎开发者社区

编程 大模型 豆包

AI测试实战:从代码扫描到缺陷预测,如何实现90%覆盖率跃升?

测试人

人工智能 软件测试

主流远控软件横评:画质、性能、功能全覆盖,带你找出最靠谱的一款!

科技热闻

商品管理中的“DeepSeek” AI赋能零售品牌释放利润空间

第七在线

《Operating System Concepts》阅读笔记:p228-p257

codists

操作系统

从政府工作报告看北斗应用发展方向

江湖老铁

IPv6改造:翻译技术的原理和优缺点分析

国科云

何必舍近求远 计算工厂帮你一键部署DeepSeek云主机

京东科技开发者

当代企业财务规划新方式:从风险管理转向长期可持续发展

智达方通

企业管理 全面预算管理 财务转型 财务规划 财务预测

如何保障 MySQL 和 Redis 的数据一致性?4种缓存同步策略+真实业务场景详解,建议收藏

Fox666

MySQL redis 面试 美团 大厂面试

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