目录

一、 首先要安装单节点集群

二、安装zookeeper并搭建集群

1. 配置host

2. 安装zookeeper

3. 配置zookeeper

三、clickhouse 集群配置

1.配置metrika.xml文件

2. 修改clickhouse的配置文件


一、 首先要安装单节点集群

在这里就不太赘述。官网下载安装包,然后放到一个文件夹中,执行以下命令即可:

rpm -ivh ./*.rpm

安装途中会让你为默认用户指定密码,输入密码或者直接回车键不设置密码。

安装完成后可以直接

clickhouse start

来启动

二、安装zookeeper并搭建集群

1. 配置host

vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.10.11 ck-01
192.168.10.12 ck-02
192.168.10.13 ck-03

 修改本机hostname,

vim /etc/sysconfig/network

HOSTNAME=ck-01
hostnamectl set-hostname ck-01

2. 安装zookeeper

tar -xzvf apache-zookeeper-3.5.9-bin.tar.gz -C /opt/

解压路径可以自己指定。

3. 配置zookeeper

进入zookeeper的conf目录下, 将其中的zoo_sample.cfg 文件改名或者复制一份命名为zoo.cfg

并对 zoo.cfg进行配置

cd /opt/apache-zookeeper-3.5.9-bin/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

配置文件修改为如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/data/zookeeper/
dataLogDir=/data/log/zookeeper/
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=ck-01:2888:3888
server.2=ck-02:2888:3888
server.3=ck-03:2888:3888

其中dataDir是数据存储路径,dataLogDir是日志路径,这个自己指定即可

在设定的dataDir的目录下,创建myid文件并写入1,其他机器分别写入2,3

cd /data/zookeeper/
vim myid
echo 1 > myid

然后进入bin目录下执行启动脚本启动zookeeper

cd /opt/apache-zookeeper-3.5.9-bin/bin/
# 启动
./zkServer.sh start
# 查看状态
./zkServer.sh status

出现下面这种则表示成功启动成功

clickhouse schema 如何 使用 clickhouse -m_clickhouse

\

可以将zookeper的启动加入到环境变量中,避免每次都要进入bin目录才能启动,

vim /etc/profile

export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.5.9-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

三、clickhouse 集群配置

1.配置metrika.xml文件

首先在/etc 下创建metrika.xml文件,并输入

<!--集群分片副本相关配置 1分片3副本 -->
<yandex>
  <clickhouse_remote_servers>
   <!--集群名称 -->
    <clickhouse_1shards_3replicas>

      <!-- 第1个分片 -->
      <shard>
        <!-- 是否写入多副本 -->
         <!-- <internal_replication>false</internal_replication>  -->
          <!-- 1分片的1副本 -->
          <replica>
            <host>ck-01</host>
            <port>9000</port>
          </replica>
          <!-- 1分片的2副本 -->
          <replica>
            <host>ck-02</host>
            <port>9000</port>
          </replica>
          <!-- 1分片的3副本 -->
          <replica>
            <host>ck-03</host>
            <port>9000</port>
          </replica>
      </shard>
    </clickhouse_1shards_3replicas>
  </clickhouse_remote_servers>


  <!--zookeeper相关配置-->

  <zookeeper-servers>
    <node index="1">
      <host>ck-01</host>
      <port>2181</port>
    </node>
    <node index="2">
      <host>ck-02</host>
      <port>2181</port>
    </node>
    <node index="3">
      <host>ck-03</host>
      <port>2181</port>
    </node>
  </zookeeper-servers>

    <!--压缩策略-->

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

  <!-- 本机绑定地址 -->

  <networks>
    <ip>::/0</ip>
  </networks>


  <macros>
    <shard_name>01</shard_name>
    <replica_name>ck-01</replica_name>
  </macros>


</yandex>

<macros>标签下的要根据所配置的机器进行配置,其他两台应该

<macros>
    <shard_name>02</shard_name>
    <replica_name>ck-02</replica_name>
  </macros>

  <macros>
    <shard_name>03</shard_name>
    <replica_name>ck-03</replica_name>
  </macros>

需要注意的是,这个配置文件需要赋予clickhouse权限

chown -R clickhouse:clickhouse /etc/metrika.xml

2. 修改clickhouse的配置文件

clickhouse的默认配置文件为/etc/clickhouse-server/config.xml

vim /etc/clickhouse-server/config.xml
<!--对外开放-->
<listen_host>::</listen_host>

<!--修改数据路径-->

<path>/data/clickhouse/</path>

<!-- Configuration of clusters that could be used in Distributed tables.
         https://clickhouse.tech/docs/en/operations/table_engines/distributed/
-->
    
<zookeeper incl="zookeeper-servers" optional="true" />
    <include_from>/etc/metrika.xml</include_from>
    <macros incl="macros" optional="true" />

<remote_servers incl="clickhouse_remote_servers">

一共需要修改三项,分别是:

1)<listen_hosts> 这个是为了能让外部机器访问

2)<path> 这个是配置数据存储路径,也可以不修改,但是如果修改了路径,则一定要将这个路径的权限改为clickhouse,不然无法启动clickhosue

3)添加上面的配置,使得集群配置生效,如果不配置,则无法启动集群

完成配置后,重新启动clickhouse

clickhouse restart

然后随便一台机器执行

clickhouse-client

然后执行以下语句

select * from system.clusters;

则能看到所配置的集群,集群名称应该为:clickhouse_1shards_3replicas 这个根据自己配置的集群名称不同有所不同