写点什么

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

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

关注

评论 1 条评论

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

新发现,新挑战,技术出海的机遇与挑战丨PingCAP DevCon 2022 出海专场

PingCAP

出海

数字化安全生产平台 DPS 重磅发布

阿里巴巴云原生

阿里云 云原生 数字化

Camtasia2023全新版下载及功能介绍讲解

茶色酒

Camtasia2023

前端培训机构需要注意什么?

小谷哥

2023最新FL Studio中文版64位安装包下载教程

茶色酒

FL Studio FL Studio 21

融云全球社交泛娱乐洞察,互联网社交换挡期的「社区产品」机遇

融云 RongCloud

社交 社区

java培训学习有什么好的方法

小谷哥

荣耀MagicOS 7.0正式发布!打造以人为中心的智慧生活解决方案

荣耀开发者服务平台

手机 系统 安卓 荣耀 honor

三面阿里,被Java面试官虐哭!现场还原真实的“被虐”场景

小二,上酒上酒

面试题 面经 大厂面试 春招

最佳实践|用腾讯云AI文字识别对混贴票据识别

牵着蜗牛去散步

人工智能 腾讯云 腾讯 文字识别 OCR

高级Java面试经验总结:多家大厂简历优化+面试题目+面经+薪酬等

钟奕礼

Java 程序员 java面试 java编程

Tiktok短视频搬运运营干货技巧

极客天地

前端培训学习的前景怎么样

小谷哥

大数据培训后找不到工作的原因有哪些?

小谷哥

前端培训程序员失业后就业方向有哪些

小谷哥

年薪120W的架构师简历你见过吗?java程序员该如何达到?

小二,上酒上酒

学习 架构 简历规划

想要做好代码质量,如何破局?

京东科技开发者

代码质量 系统 代码优化

我说用count(*)统计行数,面试官让我回去等消息...

小小怪下士

Java sql 程序员

AirServer2023个人免费版本下载

茶色酒

AirServer2023

存算一体 VS 存算分离 ,IT发展下的技术迭代

StoneDB

数据库 开源 存算分离 HTAP StoneDB

终于有阿里大牛把困扰我多年的计算机组成原理:网络通信讲明白了

小二,上酒上酒

计算机 计算机原理 TCP协议

开源大数据热力报告:StarRocks摘得数据查询与分析方向增速第一

StarRocks

数据库

「案例分享」研发效能提升之第一性原理

京东科技开发者

redis flink 研发管理 研发效能 软件开发技术的第一性原理

有位大牛终于把珍藏多年的算法视频给分享出来了,总共3.81G

小二,上酒上酒

算法 数据结构与算法 左程云

既快又稳还方便,火山引擎VeDI的这款产品解了分析师的愁

字节跳动数据平台

大数据 数据分析

支持向量机-线性SVM决策过程的可视化

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

终于学完阿里架构师推荐413页微服务分布式架构基础与实战笔记

小二,上酒上酒

Java 面试 分布式 微服务

膜拜!华为18级工程师用349页构建高可用Linux服务器,其实并不难

小二,上酒上酒

Java Linux 学习 华为 运维

云原生加速器企业维格表创始人陈霈霖:提供人人可用的数字化转型全新方案,真正驱动组织创新

阿里巴巴云原生

阿里云 云原生 维格表

听说,清华毕业大牛分享出Redis实战视频及文档,共2.3G

小二,上酒上酒

Java redis 学习路线

异常检测算法分类总结(含常用开源数据集)

云智慧AIOps社区

人工智能 机器学习 深度学习 异常检测 算法模型

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