使用docker的方式部署Cassandra节点
优点
使用Docker 可以更快速的解决很多环境配置问题:
- 不需要实现安装java
- 不需要配置supervisor (使用docker来管理进程)
- 不需要去配置ulimit 等等文件最大数配置(镜像里面已经配置好)
- 可以直接在命令行修改相应的配置
- 更新新的版本 相比之前也容易很多.
缺点:
这种方式, 没有办法充分利用双硬盘
部署步骤:
因为是一次性的事情, 所以没有使用Python Paramiko之类的方式远程执行SSH命令
- 人工登录目标机器
-
登录docker
12345# 因为我司自己创建了自己内部的dockerhub, 在执行这一步之前, 需要先从外网下载原始镜像# sudo docker pull cassandra:3.11.2# 之后再上传到内部dockerhub之中. 之后不同节点从内部dockerhub下载就要快很多了sudo docker login our.company.com --username="username" --password="password" - 根据当前机器的IP修改以下命令 (替换
{{local_ip}} 与 {{seed_ip}}
即可)12345678910111213sudo docker run -d --name "cassandra_cluster"\-e CASSANDRA_BROADCAST_ADDRESS={{local_ip}}\-e CASSANDRA_CLUSTER_NAME="Cassandra-Cluser-v2"\-e CASSANDRA_SEEDS="{{seed_ip}}"\-v /data/cassandra-docker-data:/var/lib/cassandra\-p 7000:7000\-p 7001:7001\-p 7199:7199\-p 9042:9042\-p 9160:9160\--restart always\our.company.com/skyaid/cassandra:3.11.2
一台一台的启动, 就可以了.
相比官方文档, 这里多映射了几个端口. 因为Cassandra本身就需要这些端口互联互通. 不知道为什么官方文档没有写明.
其他相关命令
- 最常用的notetool status
可以自己另外下载一个Cassandra包, 运行里面的notetool. 直接使用docker的方式:
1234sudo docker exec -it skyaid_cassandra sh -c "nodetool status"watch -n 1 'sudo docker exec -it cassandra_cluster sh -c "nodetool status"'

文章评论