clickhouse高可用&可拓展部署

发布于:2024-07-07 ⋅ 阅读:(44) ⋅ 点赞:(0)

clickhouse高可用&可拓展部署

1.部署架构

1.1高可用架构

1.2硬件资源

部署服务

节点名称

节点ip

核数

内存

磁盘

zookeeper

zk-01

/

4c

8G

100G

zk-02

/

4c

8G

100G

zk-03

/

4c

8G

100G

clikehouse

ck-01

/

32c

128G

2T

ck-02

/

32c

128G

2T

ck-03

/

32c

128G

2T

ck-04

/

32c

128G

2T

1.3扩容

1.3.1节点扩容

新增一个分片,2个副本,扩容后的架构图如下:

1.3.2资源扩容

Cpu和内存直接在云平台上扩容,磁盘使用lvm扩容数据目录大小

1.4 混合部署

1.5 负载均衡&读写分离

采用chproxy来做负载均衡和读写分离,具体架构如下:

2.安装部署

2.1部署规划

采用1.4混合部署方式,3台虚拟机,每个节点部署2个clickhouse实例和一个zookeeper。另外增加一台虚拟机用来部署chproxy,用做负载均衡和读写分离。具体部署规划如下:

部署服务

实例名称

节点ip

端口

备注

zookeeper

zk-01

10.9.135.37

2181

zk-02

10.9.135.133

2181

zk-03

10.9.135.36

2181

clikehouse

ck-01

10.9.135.37

8123

分片1副本1

ck-02

10.9.135.133

8123

分片2副本1

ck-03

10.9.135.36

8123

分片3副本1

ck-04

10.9.135.133

8223

分片1副本2

ck-05

10.9.135.36

8223

分片2副本2

ck-06

10.9.135.37

8223

分片3副本2

chproxy

chproxy

10.9.135.60

9090

2.2准备工作

  1. --修改hostname  
  2. sudo hostnamectl set-hostname ck01  
  3. sudo hostnamectl set-hostname ck02  
  4. sudo hostnamectl set-hostname ck03  
  5.   
  6. --hosts配置  
  7. 10.9.135.37 ck01  
  8. 10.9.135.133 ck02  
  9. 10.9.135.36 ck03  
  10.   
  11. --关闭防火墙  
  12. # 1.关闭防火墙   
  13. service iptables stop   
  14. chkconfig iptables off  
  15. chkconfig ip6tables off  
  16.    
  17. # 2.关闭selinux  
  18. vi /etc/sysconfig/selinux  
  19. 修改内容:【SELINUX=disabled】  
  20.       
  21. --免密登录  
  22. 1、在原机器生成RSA密钥和公钥  
  23. ssh-keygen -q -t rsa  -N "" -f  ~/.ssh/id_rsa  
  24. 2、然后将~/.ssh/id_rsa.pub内容粘贴到目标机器的~/.ssh/authorized_keys  

2.3jdk安装部署

  1. --安装包解压并修改配置文件:  
  2. export JAVA_HOME=/usr/java/jdk1.8  
  3. export JRE_HOME=$JAVA_HOME/jre  
  4. export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH  
  5. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 

2.4zookeeper安装部署

  1. --安装zk  
  2. wget http://archive.apache.org/dist/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz  
  3. mv /data/apache-zookeeper-3.6.0-bin /usr/local/zookeeper  
  4. --创建目录:  
  5. mkdir -p /data/zookeeper/data  
  6. mkdir -p /data/zookeeper/logs  
  7. 机器1指定节点号1,以此类推:  
  8. echo '1' > /data/zookeeper/data/myid  
  9. 修改zoo.cfg文件,内容如下:  
  10. --------------------------------------------------  
  11. # 基本时间单位, 毫秒值  
  12. tickTime=2000  
  13.   
  14. # tickTime的倍数,follower和leader之间的最长心跳时间  
  15. initLimit=30000  
  16.   
  17. # tickTime的倍数,leader和follower之间发送消息, 请求和应答的最大时间  
  18. syncLimit=10  
  19. # 数据目录  
  20. dataDir=/data/zookeeper/data  
  21.   
  22. # 日志目录,如果没设定,默认和dataDir相同  
  23. dataLogDir=/data/zookeeper/logs  
  24.   
  25. # 监听client连接的端口号  
  26. clientPort=2181  
  27.   
  28. # zookeeper最大连接  
  29. maxClientCnxns=2000  
  30.   
  31. # 最大的会话超时时间  
  32. maxSessionTimeout=60000000  
  33.   
  34. # 保留的文件数目,默认3个  
  35. autopurge.snapRetainCount=10  
  36.   
  37. # 自动清理snapshot和事务日志,清理频率,单位是小时  
  38. autopurge.purgeInterval=1  
  39.   
  40. # 等待处理的最大请求数量  
  41. globalOutstandingLimit=200  
  42.   
  43. # 日志文件大小Kb,切换快照生成日志  
  44. preAllocSize=131072  
  45.   
  46. #两次事务快照之间可执行事务的次数,默认的配置值为100000  
  47. snapCount=3000000  
  48.   
  49. # leader是否接受client请求,默认为yes即leader可以接受client的连接,当节点数为>3

网站公告

今日签到

点亮在社区的每一天
去签到