# ClickHouse数据库集群部署,可根据需求选择离线环境下进行安装部署
#本次部署机器IP:192.168.1.44、192.168.1.45、192.168.1.15
#在离线环境部署之前,需要先在互联网环境服务器下载保存软件包及依赖包
yum install -y yum-utils
yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
yum clean all && yum makecache
#查看要装的版本是否存在
yum list --showduplicates clickhouse-server | grep 25.7.4.11
yum list --showduplicates clickhouse-client | grep 25.7.4.11
mkdir /opt/clickhouse
yumdownloader clickhouse-server-25.7.4.11-1 --resolve --destdir=/opt/clickhouse
yumdownloader clickhouse-client-25.7.4.11-1 --resolve --destdir=/opt/clickhouse
#以上/opt/clickhouse下是所有软件包及依赖包
#提前关闭防火墙和SElinux、配置同步时间源和镜像库安装常用软件等初始化操作
#上传所有安装包至离线环境服务器每个节点的/opt/clickhouse/进行安装
yum install -y /opt/clickhouse/*.rpm
#解除IP访问限制
vim /etc/clickhouse-server/config.xml
#265行打开注释
<listen_host>::</listen_host>
#设置root用户及密码
vim /etc/clickhouse-server/users.xml
#找到
<users>
<default>
<password></password>
... ...
</default>
</users>
#上面默认的是default用户,没有密码,此用户存在则可以数据库里直接查询分布式表数据时使用
#生产环境下一般需要重新设置用户名和密码,将default配置更改为下面用户root密码diablo2025
#下面新改的root用户和密码,仍还需要在config.xml配置中remote_server字段中指定root用户名和密码,才可以正常进行分布式的操作,下文remote_servers字段中已进行设置
<users>
<root>
<password>diablo2025</password>
... ...
</root>
</users>
#重启生效
systemctl restart clickhouse-server
#安装zookeeper
#上传jdk-8u451-linux-x64.tar.gz到/opt下
cd /opt && tar xvf /opt/jdk-8u451-linux-x64.tar.gz
vim /etc/profile #追加如下环境变量
export JAVA_HOME=/opt/jdk1.8.0_451
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
#下载zookeeper
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz
vim /etc/profile
#添加我们需要的配置信息:
export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.5.9-bin
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
source /etc/profile
#可选择查看是否生效:
echo $ZOOKEEPER_HOME
#先创建一个data目录,记下它的路径,等会要用到:
mkdir /opt/apache-zookeeper-3.5.9-bin/data
cd /opt/apache-zookeeper-3.5.9-bin/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
#打开编辑zoo.cfg, dataDir改成你自己刚刚创建的目录,根据自己机器内网ip
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/apache-zookeeper-3.5.9-bin/data
clientPort=2181
server.1=192.168.1.44:2888:3888
server.2=192.168.1.45:2888:3888
server.3=192.168.1.15:2888:3888
#为每台机器配置节点id:
#在机器一上执行:
echo 1 >/opt/apache-zookeeper-3.5.9-bin/data/myid
#在机器二上执行:
echo 2 >/opt/apache-zookeeper-3.5.9-bin/data/myid
#在机器三上执行:
echo 3 >/opt/apache-zookeeper-3.5.9-bin/data/myid
cd /opt/apache-zookeeper-3.5.9-bin/bin
sh zkServer.sh start
#查看zk状态
sh zkServer.sh status
#部署clickhouse集群
vim /etc/clickhouse-server/config.xml
#取消注释符号,再更改
<zookeeper>
<node>
<host>192.168.1.44</host>
<port>2181</port>
</node>
<node>
<host>192.168.1.45</host>
<port>2181</port>
</node>
<node>
<host>192.168.1.15</host>
<port>2181</port>
</node>
</zookeeper>
#配置 remote_server字段,vim模式下:/remote_servers导航,然后43dd,把里面的内容都删除,粘贴上我们的
#下面指定
<remote_servers>
<!--bitilink_cluster是集群名字,自己命名就可以,建库建表需要用到-->
<bitilink_cluster>
<!-- 数据分片1 -->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.1.44</host>
<port>9000</port>
<user>root</user>
<password>diablo2025</password>
</replica>
</shard>
<!-- 数据分片2 -->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.1.45</host>
<port>9000</port>
<user>root</user>
<password>diablo2025</password>
</replica>
</shard>
<!-- 数据分片3 -->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.1.15</host>
<port>9000</port>
<user>root</user>
<password>diablo2025</password>
</replica>
</shard>
</bitilink_cluster>
</remote_servers>
#配置macros字段,根据每台机器的分片副本配置
#记得取消注释符号
#在第一个节点写入
<macros>
<shard>01</shard>
<replica>replica _01</replica>
</macros>
#在第二个节点写入
<macros>
<shard>02</shard>
<replica>replica _01</replica>
</macros>
#在第三个节点写入
<macros>
<shard>03</shard>
<replica>replica _01</replica>
</macros>
#这样配置表示三个分片(shards)和一个副本(replica)
#配置文件是热更新的,所以修改配置后无需要重启服务,除非是首次启动 ClickHouse,验证集群
#查看单台状态
clickhouse-client -uroot --password=123456 --query="select * from system.macros;";
#查看集群状态
clickhouse-client -uroot --password=diablo2025 --query="select * from system.clusters;";
3441

被折叠的 条评论
为什么被折叠?



