1.1.1. Clickhouse 集群安装

前期准备

1.设置主机名和hosts映射

2.关闭防火墙和SELinux

3.配置ntp时间同步

4.安装zookeeper和JDK环境

一、安装单机

(3台都操作,以CentOS7为例)

1.1 在线安装

从官方仓库安装 (使用root用户在所有节点操作)

#使用脚本安装yum源
curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash
​
#yum 安装 server 以及 client
yum install -y clickhouse-server clickhouse-client
​
#查看是否安装完成
sudo yum list installed 'clickhouse*'

离线安装

如果网络无法连接就采用离线方式安装,上传rpm包到/apps/source/
[root@ddyw-data-center-dev01 ~]# cd /apps/source/
[root@ddyw-data-center-dev01 source]# ll
-rw-r--r--. 1 root root      6384 7月  29 10:09 clickhouse-client-20.8.3.18-1.el7.x86_64.rpm
-rw-r--r--. 1 root root  69093220 7月  29 10:09 clickhouse-common-static-20.8.3.18-1.el7.x86_64.rpm
-rw-r--r--. 1 root root  36772044 7月  29 10:09 clickhouse-server-20.8.3.18-1.el7.x86_64.rpm
-rw-r--r--. 1 root root     14472 7月  29 10:09 clickhouse-server-common-20.8.3.18-1.el7.x86_64.rpm
[root@ddyw-data-center-dev01 source]# yum install -y clickhouse-*

1.2 修改配置参数

修改配置文件config.xml (在node01节点操作) 开起远程访问模式,配置数据目录修改,由于默认端口9000被占用,修改为9002

# vim /etc/clickhouse-server/config.xml
    <http_port>8123</http_port>
    <tcp_port>9002</tcp_port>    //更改默认的9000端口
    <mysql_port>9004</mysql_port>

    <listen_host>::</listen_host>    //注释打开
​
    <path>/apps/clickhouse/data/</path>   //设置数据存储目录
    <tmp_path>/apps/clickhouse/tmp/</tmp_path>   //设置缓存目录
​
# 添加ClickHouse分布式DDL记录自动清理配置
    <distributed_ddl>
        <!-- Path in ZooKeeper to queue with DDL queries -->
        <path>/clickhouse/task_queue/ddl</path>
        <cleanup_delay_period>60</cleanup_delay_period>   //搜索ddl 增加以下3行
        <task_max_lifetime>86400</task_max_lifetime>
        <max_tasks_in_queue>200</max_tasks_in_queue>
        <!-- Settings from this profile will be used to execute DDL queries -->
        <!-- <profile>default</profile> -->
    </distributed_ddl>
​
cleanup_delay_period:检查DDL记录清理的间隔,单位为秒,默认60秒。
task_max_lifetime:分布式DDL记录可以保留的最大时长,单位为秒,默认保留7天。
max_tasks_in_queue:分布式DDL队列中可以保留的最大记录数,默认为1000条。

1.1.2. 二、生成 /etc/metrika.xml 配置文件

2.1 新建metrika.xml文件, 配置集群信息 (在node01节点操作)

# vim /etc/metrika.xml
​
<?xml version="1.0"?>
<yandex>
<clickhouse_remote_servers>
    <ddyw_ck_dev> <!--集群名称,自定义 每个分片只有1个副本-->
        <shard> <!--分片1-->
            <replica>
                <host>ddyw-data-center-dev01</host>
                <port>9002</port>
            </replica>
        </shard>
        <shard> <!--分片2-->
            <replica>
                <host>ddyw-data-center-dev02</host>
                <port>9002</port>
            </replica>
        </shard>
        <shard> <!--分片3-->
            <replica>
                <host>ddyw-data-center-dev03</host>
                <port>9002</port>
            </replica>
        </shard>
    </ddyw_ck_dev>  <!--这里的集群名称也记得修改-->
</clickhouse_remote_servers>
​
​
<zookeeper-servers> <!--配置zookeeper集群地址-->
  <node index="1">
    <host>ddyw-data-center-dev01</host>
    <port>2181</port>
  </node><node index="2">
    <host>ddyw-data-center-dev02</host>
    <port>2181</port>
  </node>
  <node index="3">
    <host>ddyw-data-center-dev03</host>
    <port>2181</port>
  </node>
</zookeeper-servers><macros>
    <replica>ddyw-data-center-dev02</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>

2.2 修改users.xml配置文件,添加密码 (在node01节点操作)

修改默认用户密码以及添加新用户的密码,密码由下面随机生成
# 生成随机密码
[root@sky-node04 ~]# PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD";
ynjb8b6h
​
# 加密随机密码
[root@sky-node04 ~]# echo -n "$PASSWORD" | sha256sum | tr -d '-'
40897635036b520fd85c160a42c08465434c7b91c611cedaa3615714030ec7d9
​
# 在</default></users>之间插入自定义密码配置
[root@sky-node04 ~]# vim /etc/clickhouse-server/users.xml
        </default>
        <dd01dev>    <!--自定义ck数据库用户名-->
            <password_sha256_hex>e4e727cd493ec6e316258dc7b68a56de401cce62a393dceb99f2a082695584ca</password_sha256_hex>
            <networks incl="networks" replace="replace">
                <ip>::/0</ip>
            </networks>
            <quota>default</quota>
            <profile>default</profile>
        </dd01dev>    <!--这里也修改-->
        <guest01>
            <password>guest01</password>
                <networks incl="networks" replace="replace">
                <ip>::/0</ip>
            </networks>
            <quota>default</quota>
            <profile>readonly</profile>
        </guest01>
    </users>

2.3 同步node01节点的配置到其他两台节点 (在node01节点操作)

[root@sky-node04 ~]# scp /etc/clickhouse-server/config.xml root@sky-node05:/etc/clickhouse-server/
[root@sky-node04 ~]# scp /etc/clickhouse-server/config.xml root@sky-node06:/etc/clickhouse-server/
​
[root@sky-node04 ~]# scp /etc/metrika.xml root@sky-node05:/etc/
[root@sky-node04 ~]# scp /etc/metrika.xml root@sky-node06:/etc/
​
[root@sky-node04 ~]# scp /etc/clickhouse-server/users.xml root@sky-node05:/etc/clickhouse-server/
[root@sky-node04 ~]# scp /etc/clickhouse-server/users.xml root@sky-node06:/etc/clickhouse-server/

1.1.3. 三、启动和验证

3.1 启动ClickServer (所有节点操作) 首先保证开启Zookeeper正常,每一个节点开启ck

创建相关目录及权限
mkdir -p /apps/clickhouse
chown -R clickhouse:clickhouse /apps/clickhouse
​
#开机启动clickhouse-server
systemctl enable clickhouse-server
​
#启动clickhouse-server
systemctl start clickhouse-server
​
#查看clickhouse-server运行状态
systemctl status clickhouse-server
​
#关闭clickhouse-server
systemctl stop clickhouse-server
​
#查看日志
tail -f /var/log/clickhouse-server/clickhouse-server.log
tail -f /var/log/clickhouse-server/clickhouse-server.err.log
​
#开启Debug调试模式
clickhouse-server start

3.2 连接数据库

# clickhouse-client进入操作数据库
clickhouse-client --host=<host> --port=<port> --user=<user> --password=<password>
​
例如:
clickhouse-client --host=sky-node04 --port=9002 --user=dd01test --password=''
​
[root@sky-node04 ~]# clickhouse-client --host=sky-node04 --port=9002 --user=dd01test --password=''
ClickHouse client version 20.8.3.18.
Connecting to sky-node04:9002 as user dd01test.
Connected to ClickHouse server version 20.8.3 revision 54438.
​
sky-node04 :) show databases   //查看数据库
​
SHOW DATABASES
​
┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default                        │
│ system                         │
└────────────────────────────────┘
​
3 rows in set. Elapsed: 0.001 sec.
​
sky-node04 :) select * from system.clusters;   //查看系统表
sky-node04 :) select cluster,shard_num,replica_num,host_name,port,user from system.clusters;   //或者使用指定字段的查询语句,方便观察,如下所示
​
SELECT
    cluster,
    shard_num,
    replica_num,
    host_name,
    port,
    user
FROM system.clusters
​
┌─cluster───────────────────────────┬─shard_num─┬─replica_num─┬─host_name──┬─port─┬─user────┐
│ ddyw_ck_japan_test                │         1 │           1 │ sky-node04 │ 9002 │ default │
│ ddyw_ck_japan_test                │         2 │           1 │ sky-node05 │ 9002 │ default │
│ ddyw_ck_japan_test                │         3 │           1 │ sky-node06 │ 9002 │ default │
│ test_cluster_two_shards           │         1 │           1 │ 127.0.0.1  │ 9000 │ default │
│ test_cluster_two_shards           │         2 │           1 │ 127.0.0.2  │ 9000 │ default │
│ test_cluster_two_shards_localhost │         1 │           1 │ localhost  │ 9000 │ default │
│ test_cluster_two_shards_localhost │         2 │           1 │ localhost  │ 9000 │ default │
│ test_shard_localhost              │         1 │           1 │ localhost  │ 9000 │ default │
│ test_shard_localhost_secure       │         1 │           1 │ localhost  │ 9440 │ default │
│ test_unavailable_shard            │         1 │           1 │ localhost  │ 9000 │ default │
│ test_unavailable_shard            │         2 │           1 │ localhost  │    1 │ default │
└───────────────────────────────────┴───────────┴─────────────┴────────────┴──────┴─────────┘
​
11 rows in set. Elapsed: 0.002 sec.
​
sky-node04 :)

参考文档 初识ClickHouse——安装与入门 https://segmentfault.com/a/1190000038991230
ClickHouse实战-ClickHouse安装部署 https://developer.aliyun.com/article/780045
Clickhouse集群安装部署 https://www.cnblogs.com/biehongli/p/14462096.html
Clickhouse 集群安装(完整版) https://blog.csdn.net/weixin_42003671/article/details/112849897

Copyright & copy lviter@163.com            updated 2024-02-06 09:54:56

results matching ""

    No results matching ""