# zookeeper 集群部署
下载地址 https://zookeeper.apache.org/releases.html
禁用防火墙和SELinux
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
sed -i 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config
解压压缩包
tar -xvf apache-zookeeper-3.5.8-bin.tar.gz
移动至/opt目录下
mv apache-zookeeper-3.5.8-bin /opt/zookeeper
修改配置文件,所有机器配置文件保持一致
cat <<EOF > /opt/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir= /data/zookeeper/data
dataLogDir= /data/zookeeper/log
clientPort=2182
autopurge.purgeInterval=0
globalOutstandingLimit=200
server.0=10.10.10.62:2888:3888
server.1=10.10.10.63:2888:3888
server.2=10.10.10.229:2888:3888
EOF
配置文件注意事项:
server.0=10.10.10.62:2888:3888
server.1=10.10.10.63:2888:3888
server.2=10.10.10.229:2888:3888
3888后面不能有空格
其实包括 clientPort=2182 后面也不能有空格
不然,就会出现报错: Address unresolved: server.0=10.10.10.62:2888:3888
新建数据目录
mkdir /data/zookeeper/{data,log} -p
写myid文件,这个文件是zookeeper用于确认自己是哪一个节点,myid 文件一定要在 dataDir 目录下
vi /data/zookeeper/data/myid
比如这台机器是server.0 ,就往里面写 0
安装JDK,步骤省略
添加到环境变量
export ZK_HOME=/opt/zookeeper
export PATH=$PATH:$ZK_HOME/bin
source /etc/profile
启动
zkServer.sh start
使用status查看运行情况
zkServer.sh status
测试zookeeper
zkCli.sh -server 10.10.10.62:2182
RPM方式安装
下载地址
https://packagecloud.io/altinity/clickhouse
需要的包
clickhouse-server-common-*
clickhouse-server-*
clickhouse-common-static-*
clickhouse-client-*
需要安装的依赖
yum install -y libicu unixODBC
安装rpm包
rpm -ivh clickhouse-server-common-20.6.6.7-1.el7.x86_64.rpm
rpm -ivh clickhouse-common-static-20.6.6.7-1.el7.x86_64.rpm
rpm -ivh clickhouse-server-20.6.6.7-1.el7.x86_64.rpm
rpm -ivh clickhouse-client-20.6.6.7-1.el7.x86_64.rpm
创建数据目录
mkdir -p /data/clickhouse/tmp
chown clickhouse:clickhouse -R /data/clickhouse
修改数据保存目录
修改 /etc/clickhouse-server/config.xml 文件下列内容
<!-- Path to data directory, with trailing slash. -->
<path>/data/clickhouse/</path>
<!-- Path to temporary data for processing hard queries. -->
<tmp_path>/data/clickhouse/tmp/</tmp_path>
启动clickhouse
/etc/init.d/clickhouse-server start
配置文件 /etc/metrika.xml 内容如下:
cat <<EOF > /etc/metrika.xml
<yandex>
<clickhouse_remote_servers>
<perftest_3shards_1replicas>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>10.10.10.62</host>
<port>9000</port>
</replica>
</shard>
<shard>
<replica>
<internal_replication>true</internal_replication>
<host>10.10.10.63</host>
<port>9000</port>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>10.10.10.229</host>
<port>9000</port>
</replica>
</shard>
</perftest_3shards_1replicas>
</clickhouse_remote_servers>
<!--zookeeper相关配置-->
<zookeeper-servers>
<node index="1">
<host>10.10.10.62</host>
<port>2182</port>
</node>
<node index="2">
<host>10.10.10.63</host>
<port>2182</port>
</node>
<node index="3">
<host>10.10.10.229</host>
<port>2182</port>
</node>
</zookeeper-servers>
<macros>
<replica>10.10.10.62</replica>
</macros>
<networks>
<ip>::/0</ip>
</networks>
<clickhouse_compression>
<case>
<min_part_size>10000000000</min_part_size>
<min_part_size_ratio>0.01</min_part_size_ratio>
<method>lz4</method>
</case>
</clickhouse_compression>
</yandex>
EOF
3台机器的配置文件都一样,唯一有区别的是:
<macros>
<replica>10.10.10.62</replica>
</macros>
修改 10.10.10.63
sed -i 's/<replica>10.10.10.62/<replica>10.10.10.63/g' /etc/metrika.xml
修改 10.10.10.229
sed -i 's/<replica>10.10.10.62/<replica>10.10.10.229/g' /etc/metrika.xml
启动zookerper,clickhouse-server服务
zkServer.sh start
/etc/init.d/clickhouse-server start
在每个节点启动clickhouse客户端,和单节点启动完全一样,查询集群信息
select * from system.clusters;