ClickHouse 集群部署

# 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;

 

posted @ 2020-09-29 17:42  屠魔的少年  阅读(36)  评论(0)    收藏  举报