Cassandra集群化Docker完整部署

本文详细介绍了在Thingsboard环境下,如何在CentOS系统中进行Cassandra的单机和集群化Docker部署,包括环境配置、Docker安装、Cassandra与Thingsboard的配置调整、集群状态检查及调优等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

               Thingsboard下Cassandra集群化Docker部署

                                                                                 徐景周

一、环境

  • CentOS
  • 安装Nano
apt-get update

apt-get install nano

 

  • Oracle JDK:1.8及以上

查找Java安装路径

which java

ls /usr/bin/java (上一步结果路径)

ls -lrt /etc/alternatives/java (上一步结果路径)

ls /usr/lib/jvm/java-8-openjdk-amd64 (最终路径)

 

  • 关闭防火墙
systemctl stop firewalld

systemctl disable firewalld

 

二、单机部署(Docker版)

  1. 停止宿主机Cassandra(如有必要)

sudo service cassandra stop

sudo chkconfig cassandra off

sudo service cassandra status

 

  2. 安装Docker

  • 安装

         请浏览【参考文献 1】。

  • 修改Docker默认目录
sudo service docker stop

mv /var/lib/docker /home/docker

ln -s /home/docker /var/lib/docker


sudo yum install -y nano

sudo nano /usr/lib/systemd/system/docker.service

文件修改项如下:

ExecStart=/usr/bin/dockerd --graph /home/docker -H fd:// --containerd=/run/containerd/containerd.soc


sudo systemctl daemon-reload

sudo service docker restart

sudo service docker status

docker info | grep Dir

 

  • Docker默认磁盘空间
df -h

docker info

docker exec -it tb-cassandra df -h

 

  • 自启动
sudo systemctl enable docker

 

3. Docker中安装Cassandra

1. 操作指令

  • 安装

docker stop tb-cassandra
docker rm tb-cassandra

docker run --name tb-cassandra -p 7000:7000 -p 7001:7001 -p 7199:7199 -p 9042:9042 -p 9160:9160 -d cassandra:3.0
  • 启动
docker start tb-cassandra
  • 检查
docker ps -a
  • 自启动
docker update --restart=always 容器ID

 

 2. 实现细节

    请浏览【参考文献 2】和【参考文献 3】。

 

4. 修改Cassandra配置

 1. 操作指令

  • 进入容器bash
docker exec -it  tb-cassandra bash
  • 启动cql环境
cqlsh
  • cql环境下,修改族名
update system.local set cluster_name = 'Thingsboard Cluster' where key='local';
  • cql环境下,查看族名
select cluster_name from system.local;
  • cql环境下,退出
exit
  • 刷新配置
nodetool flush system
  • 修改cassandra.yaml配置文件
nano /etc/cassandra/cassandra.yaml

或者采用文件替换方式(先退出docker bash)

docker exec -it tb-cassandra bash

ls etc/cassandra/cassandra.yaml

exit;


docker ps

docker cp cassandra.yaml 容器id:/etc/cassandra/cassandra.yaml


docker exec -it tb-cassandra bash

cat /etc/cassandra/cassandra.yaml

Cassandra.yaml配置文件修改

 创建目录及修改属性

ls /var/lib/cassandra/

mkdir /var/lib/cassandra/data

mkdir /var/lib/cassandra/commitlog

mkdir /var/lib/cassandra/saved_caches

mkdir /var/lib/cassandra/hints

chown 777 /var/lib/cassandra/data

chown 777 /var/lib/cassandra/commitlog

chown 777 /var/lib/cassandra/saved_caches

chown 777 /var/lib/cassandra/hints

 修改文件下面的选项

cluster_name: 'Thingsboard Cluster’

hints_directory: /var/lib/cassandra/hints

data_file_directories:

     - /var/lib/cassandra/data

commitlog_directory: /var/lib/cassandra/commitlog

saved_caches_directory: /var/lib/cassandra/saved_caches

seeds: "127.0.0.1”

listen_address: localhost

# broadcast_address: 1.2.3.4

start_rpc: true

rpc_address: 0.0.0.0

broadcast_rpc_address: 1.2.3.4
  • 退出docker bash
exit;
  • 安装Thingsboard对应数据库及数据表(顺序:schema-ts.cql -> schema-entities.cql)
docker ps

docker cp schema-ts.cql 容器id:/root/schema-ts.cql

docker cp schema-entities.cql 容器id:/root/schema-entities.cql


docker exec -it tb-cassandra bash

ls /root

cqlsh -f /root/schema-entities.cql

cqlsh -f /root/schema-ts.cql

exit;
  • 重启Cassandra
docker restart tb-cassandra
  • 查看Cassandra是否启动正常
docker logs tb-cassandra

实现细节

    请浏览【参考文献4】和【参考文献 5】。

 

5. 修改Thingsboard配置

  • 修改文件thingsboard.conf(/usr/share/thingsboard/conf)
# DB Configuration
export DATABASE_ENTITIES_TYPE=sql

export DATABASE_TS_TYPE=cassandra

export SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值