利用DC/OS平台部署Cassandra

Posted Mesosphere APAC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用DC/OS平台部署Cassandra相关的知识,希望对你有一定的参考价值。


Cassandra是一个开源的分布式数据库,具有高度可用性,去中心化,高容错性和易于缩放等特点,在当今的大数据领域(比如SMACK)是非常流行的工具。在DC/OS中就支持Cassandra数据库,并且包含了非常多的功能,此外,DC/OS还提供了认证的SMACK技术栈中其他软件包,这无疑大大简化了大数据框架的安装管理。


假设你已经有了一个DC/OS集群,我们建议你首选安装那些认证的数据软件包(参考这篇博客了解什么是认证的软件包),这里我们会安装Cassandra软件包。

博客链接:https://mesosphere.com/blog/certified-packages/。


准备Cassandra安装环境



使用默认的配置参数安装一个最小的Cassandra环境,需要DC/OS集群有3个私有节点,Cassandra会在每个agent节点上部署一个Cassandra数据节点服务,每个agent节点需要至少1.5个CPU和5G的内存资源。


如果初始的默认安装无法满足后续服务要求,可以通过DC/OS CLI命令来扩展你的Cassandra数据节点个数。


安装Cassandra



可以通过DC/OS的界面或者命令行来安装Cassandra,唯一的不同点在于:通过界面安装Cassandra服务后,还需要额外操作来安装Cassandra子命令,而通过命令行安装就不需要。


在DC/OS界面上,找到“Catalog”页面,然后搜索查找“Cassandra”软件包,点选Cassandra图标,然后点击安装页面那个紫色的按钮“Review&Run”开始安装,可以在界面的“Service”页面查看安装进度,然后在DC/OS命令行中通过如下命令安装Cassandra子命令:

dcos package install --cli cassandra



或者,你也可以直接通过DC/OS命令行安装Cassandra:

dcos package install cassandra 


然后用cassandra子命令查看安装进度:

dcos cassandra plan show deploy


操作Cassandra集群



这里我们用到2个Cassandra子命令:describe和endpoints,这两个命令会返回Cassandra集群的一些详细信息。


dcos cassandra describe命令会以json格式返回cassandra集群的配置信息,节点信息和服务信息,如下:





你可以通过任意数据节点的dns信息,通过Cassandra的docker容器连接到Cassandra集群,然后通过cassandra查询语句来查询数据,创建表等操作。

docker run -it cassandra:3.0.7 cqlsh node-0-server.cassandra.autoip.dcos.thisdcos.directory


多个Cassandra集群



本章节会介绍如何在一个DC/OS集群上部署多个Cassandra集群。


如果要部署多个Cassandra集群,那么必须确保这些集群的服务名字是唯一的,比如将多个Cassandra集群的名字命名为:Cassandra, Cass, CassDev, CassTest, CassProd等等。


安装多个Cassandra集群最简单的方法就是使用DC/OS的虚拟网络,它可以有效防止端口冲突,但默认安装并没有启用DC/OS虚拟网络。可以通过勾选Cassandra安装界面中的“VIRTUAL_NETWORK_ENABLED”复选框来使用DC/OS虚拟网络


当然了,你也可以在不使用DC/OS虚拟网络的情况下安装多个Cassandra集群,不过,你可能需要手动检查所有默认的网络设置,以确保没有冲突。


Cassandra集群管理



本章节将会介绍4个用于Cassandra管理的子命令。


扩展集群


为Cassandra集群增加节点是一个非常常用的操作,在DC/OS 1.10中,用如下命令为Cassandra集群进行扩容:

dcos cassandra update start --options=config.json

      

在config.json配置文件中,将“nodes”—“count”字段设置为扩展后节点个数即可,如下:

{

  "nodes": {

    "count": 5

  }

}


更改配置


更改Cassandra集群配置使用的还是dcos cassandra update start命令,如下:

dcos cassandra update start --options=config.json


你可以更改集群的如下配置信息:log_level, backup_restore_strategy, placement_constraint, concurrent_writes, and concurrent_reads


升级


升级操作同样还是由update start这个子命令来完成的,通过如下命令来制定升级的版本:

dcos cassandra update start —package-version=""


该命令会在所有的Cassandra节点上进行滚动升级操作。通过如下命令查看当前可用版本:

dcos cassandra update package-versions


备份和恢复


Cassandra集群的备份和恢复操作,分别有如下两条命令实现:

dcos cassandra plan start backup

dcos cassandra plan start backup


在启动备份之前,您需要在AWS或Azure中配置制定用于存储备份数据的容器。阅读灾难恢复一文了解更多信息。文章链接:https://docs.mesosphere.com/services/cassandra/2.0.3-3.0.14/disaster-recovery/。


卸载Cassandra集群


卸载Cassandra是个相对简单的操作,对于默认的Cassandra集群使用如下命令进行卸载操作:

dcos package uninstall cassandra --app-id=/cassandra


为了确保Cassandra被完全卸载,所占有的资源都被释放掉,我们还需要清理zookeeper中残留数据以及一些可能还被“预留”的资源,在任意master节点,执行如下操作即可:

sudo docker run mesosphere/janitor /janitor.py -r cassandra-role -p cassandra-principal -z dcos-service-cassandra


点解
阅读原文,查看原版博客。


以上是关于利用DC/OS平台部署Cassandra的主要内容,如果未能解决你的问题,请参考以下文章

深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台

深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台

深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台

教你一招,利用 PyTorch on DC/OS 实现深度学习

使用ARM模板在Azure中国大规模部署DC/OS集群

多区域 Azure 容器服务 DC/OS 集群