2025 AI基础设施风向标,不看必后悔!#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:412301
用户头像

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

关注

评论 1 条评论

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

直播预告|如何通过“智能边缘安全”提升企业免疫力?

京东科技开发者

https 云安全 CDN加速 网站反爬 网站建设

膜拜!首次公布Java10W字面经,Github访问量破百万

Java~~~

Java 架构 面试 微服务 多线程

牛掰!阿里人用7部分讲明白百亿级高并发系统(全彩版小册开源)

Java~~~

Java 架构 面试 多线程 高并发

九阴真经MySQL版:一条查询语句如何执行的

MySQL 数据库 程序员 架构

叹服!阿里自述SpringCloud微服务:入门+实战+案例

Java~~~

Java spring 架构 面试 Spring Cloud

大厂的 SDK 写法,偷学到了!

程序员鱼皮

Java c++ Python 架构 大前端

细节爆炸!腾讯用13个案例实战讲明白MySQL,没想到这么全

Java~~~

Java MySQL 数据库 架构 面试

回款金额自动分配

明道云

揭秘盒马鲜生 Android 短视频秒播优化方案

阿里云CloudImagine

android 音视频 短视频 Video播放器 移动端

阿里一面 五问 @Transactional

skow

Java Spring Boot 后端

顶级!13位专家力荐Spring5为企业级开发提供一站式方案

Java~~~

Java spring 架构 面试 Spring Boot

Swap市值管理机器人系统软件开发资料

netty系列之:搭建HTTP上传文件服务器

程序那些事

Java Netty HTTP 文件服务器 程序那些事

🚄【Redis 干货领域】让你彻底会使用“Redis中最陌生且最强大的集合”(ZSET)【上部】

码界西柚

redis Zset 9月日更 Redis指令

测试用例编写方法

与风逐梦

合规安全大考核:移动应用安全策略全盘点

蚂蚁集团移动开发平台 mPaaS

RPC 移动开发 mPaaS 隐私安全 加固

云上数据不安全主要原因是什么?保障云上数据安全用什么软件好?

行云管家

云计算 数据安全 企业上云 云数据

别问了,我真的不喜欢这个注解!

why技术

Java

这个夏天,这群大学生奔波在盐场里忙啥?

科技热闻

美团架构师熬夜整理:Netty权威指南2.0版+英雄传说项目

Java~~~

Java 架构 面试 Netty 架构师

完美!华为爆出Redis宝典,原来Redis性能可压榨到极致

Java~~~

Java redis 架构 面试 分布式

限时!字节Java程序性能优化宝典开源,原来这才叫性能优化

Java~~~

Java 架构 面试 JVM 性能调优

进大厂为何要学Zookeeper?

冰河

zookeeper 分布式 一致性 服务注册与发现 协同系统

高光时刻!美团推出Spring源码进阶宝典:脑图+视频+文档

Java~~~

Java spring 源码 架构 面试

LeetCode题解:897. 递增顺序搜索树,递归,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

快速解决运维过程中碰到的难题,就用行云管家!

行云管家

运维 运维人生 IT运维 企业运维

NDK的C++ 库支持

Changing Lin

9月日更

携手强化「内容审核」能力,融云与数美科技达成战略合作

融云 RongCloud

音视频 内容安全 融云 即时通讯IM

限量!腾讯高工用4部分讲清楚了Spring全家桶+微服务

Java~~~

Java spring 架构 面试 微服务

PancakeSwap市值管理机器人APP系统开发价格

uniswap市值管理机器人系统开发

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