1. 服务器端口分配:
ip地址 zookeeper端口 clickhouse端口
10.0.0.11 2181 9000
10.0.0.12 2181 9000
10.0.0.13 2181 9000
  1. 安装 zookeeper集群:
    参见:源码安装 zookeeper集群3.4.11

  2. 安装 clickhouse集群(版本:19.17):

    1. 查看机器是否支持:
      grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
    2. 下载安装包:
      # 下载地址
      https://packagecloud.io/Altinity/clickhouse
      wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-common-19.17.10.1-1.el7.x86_64.rpm/download.rpm
      wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-19.17.10.1-1.el7.x86_64.rpm/download.rpm
      wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-common-static-19.17.10.1-1.el7.x86_64.rpm/download.rpm
      wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-client-19.17.10.1-1.el7.x86_64.rpm/download.rpm
    3. 安装:
      rpm -ivh *.rpm
    4. 修改配置文件:
      vim /etc/clickhouse-server/config.xml
      <listen_host>0.0.0.0</listen_host>
      <tcp_port>9000</tcp_port>
    5. 添加用户:
      vim /etc/clickhouse-server/users.xml
       <users>
           <!--用户名为ck-->
           <ck>
               <password>123456</password>  <!--明文密码-->
               <networks>
                     <ip>::/0</ip>
               </networks>
               <profile>default</profile>
               <quota>default</quota>
           </ck>
       </users>
    6. 增加集群配置:
      vim /etc/metrika.xml
       <yandex>
       <clickhouse_remote_servers>
           <!-- 集群名称,可以修改 -->
           <my_cluster>
               <shard>
                   <replica>
                       <host>10.0.0.11</host>
                       <port>9000</port>
                   </replica>
               </shard>
               <shard>
                   <replica>
                       <host>10.0.0.12</host>
                       <port>9000</port>
                   </replica>
               </shard>
               <shard>
                   <replica>
                       <host>10.0.0.13</host>
                       <port>9000</port>
                   </replica>
               </shard>
           </my_cluster>
       </clickhouse_remote_servers>
       <zookeeper-servers>
           <node>
               <host>10.0.0.11</host>
               <port>2181</port>
           </node>
           <node>
               <host>10.0.0.12</host>
               <port>2181</port>
           </node>
           <node>
               <host>10.0.0.13</host>
               <port>2181</port>
           </node>
       </zookeeper-servers>
       <!-- 这一项需要保证每台机器上的配置不同 -->
       <macros>
           <shard>1</shard>
           <replica>node1</replica>
       </macros>
       </yandex>
    7. 启动服务:
      systemctl start clickhouse-server
    8. 连接:
      clickhouse-client -h 10.0.0.11 --port=9000 -u ck --password=123456
    9. 查看集群状态:
      select cluster,shard_num,replica_num,host_name,port,user from system.clusters;
    10. 查看宏配置:
      select * from system.macros;
    11. 验证集群:
      1. 创建分布式表:
         CREATE TABLE IF NOT EXISTS user_cluster ON CLUSTER my_cluster \
         ( \
             id Int32, \
             name String \
         )ENGINE = Distributed(my_cluster, default, user_local,id);
      2. 在每台机器上查看表:
        SHOW TABLES;
      3. 在每台机器上创建本地表:
         CREATE TABLE IF NOT EXISTS user_local \
         ( \
             id Int32, \
             name String \
         )ENGINE = MergeTree() \
         ORDER BY id \
         PARTITION BY id \
         PRIMARY KEY id;
      4. 插入数据:
        INSERT INTO user_cluster VALUES(1,'tom'),(2,'jack'),(3,'jim'),(4,'nike');
      5. 在每台机器上查看数据:
        select * from user_cluster;
文档更新时间: 2024-04-17 18:11   作者:lee