本文讲解ClickHouse 集群搭建。配置文件下载
一、下载rpm文件
1、下载地址:https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/
下载最新的版本:
clickhouse-common-static-dbg-21.5.5.12-2.x86_64.rpm
clickhouse-common-static-21.5.5.12-2.x86_64.rpm
clickhouse-server-21.5.5.12-2.noarch.rpm
clickhouse-client-21.5.5.12-2.noarch.rpm
2、上传到所有服务器,比如/u02/clickhouse 目录下
二、安装
每台服务器都要执行如下语句:
[root@node01 u02]# cd clickhouse
[root@node01 clickhouse]# rpm -ivh *
三、配置
每台服务器都要配置
1、创建目录
# 创建数据存储目录
[root@node01 u01]# mkdir -p chbase
[root@node01 u01]# cd chbase
[root@node01 chbase]# mkdir -p access log task_queue user_files tmp format_schemas log/clickhouse-server task_queue/ddl
# 更新目录所属用户
[root@node01 chbase]# cd ..
[root@node01 u01]# chown -R clickhouse:clickhouse chbase
2、更改用户文件
在目录/etc/clickhouse-server目录下user.xml 文件,根据命令生成秘钥
# password_double_sha1_hex,密码1234abcd
[root@node01 u01]# echo -n "1234abcd" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
a28d6a233b76fc581a8e711b8966883c91c97612
# password_sha256_hex,密码1234abcd
[root@node01 u01]# echo -n "1234abcd" | sha256sum | tr -d '-'
221b37fcdb52d0f7c39bbd0be211db0e1c00ca5fbecd5788780463026c6b964b
user.xml文件配置如下:
<?xml version="1.0"?>
<yandex>
<!-- Profiles of settings. -->
<profiles>
<!-- Default settings. -->
<default>
<!-- Maximum memory usage for processing single query, in bytes. -->
<max_memory_usage>10000000000</max_memory_usage>
<load_balancing>random</load_balancing>
</default>
<!-- Profile that allows only read queries. -->
<readonly>
<readonly>1</readonly>
</readonly>
</profiles>
<!-- Users and ACL. -->
<users>
<!-- If user name was not specified, 'default' user is used. -->
<default>
<password_double_sha1_hex>8e083f89ec608457b08b255be06d6f1c7ba46bcc</password_double_sha1_hex>
<networks>
<ip>::/0</ip>
</networks>
<!-- Settings profile for user. -->
<profile>default</profile>
<!-- Quota for user. -->
<quota>default</quota>
</default>
<admin>
<password_double_sha1_hex>8e083f89ec608457b08b255be06d6f1c7ba46bcc</password_double_sha1_hex>
<access_management>1</access_management>
<networks>
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</admin>
</users>
<!-- Quotas. -->
<quotas>
<!-- Name of quota. -->
<default>
<interval>
<!-- Length of interval. -->
<duration>3600</duration>
<queries>0</queries>
<errors>0</errors>
<result_rows>0</result_rows>
<read_rows>0</read_rows>
<execution_time>0</execution_time>
</interval>
</default>
</quotas>
</yandex>
3、集群配置,在/etc/clickhouse-server/config.d目录下添加文件metrika.xml,每个集群都添加。
<yandex>
<!--<clickhouse_remote_servers>
<jack_gk_cluster>
<shard>
<weight>1</weight>
<internal_replication>false</internal_replication>
<replica>
<host>node01</host>
<port>9099</port>
</replica>
<replica>
<host>node02</host>
<port>9099</port>
</replica>
</shard>
<shard>
<weight>1</weight>
<internal_replication>false</internal_replication>
<replica>
<host>node02</host>
<port>9099</port>
</replica>
<replica>
<host>node03</host>
<port>9099</port>
</replica>
</shard>
<shard>
<weight>1</weight>
<internal_replication>false</internal_replication>
<replica>
<host>node03</host>
<port>9099</port>
</replica>
<replica>
<host>node01</host>
<port>9099</port>
</replica>
</shard>
</jack_gk_cluster>
</clickhouse_remote_servers>-->
<clickhouse_remote_servers>
<jack_cluster>
<shard>
<internal_replication>false</internal_replication>
<replica>
<host>node01</host>
<port>9099</port>
<user>default</user>
<password>3480abcd</password>
</replica>
</shard>
<shard>
<internal_replication>false</internal_replication>
<replica>
<host>node02</host>
<port>9099</port>
<user>default</user>
<password>3480abcd</password>
</replica>
</shard>
<shard>
<internal_replication>false</internal_replication>
<replica>
<host>node03</host>
<port>9099</port>
<user>default</user>
<password>3480abcd</password>
</replica>
</shard>
</jack_cluster>
</clickhouse_remote_servers>
<!-- 对应每个节点的host,此处需要修改 -->
<macros>
<replica>node01</replica>
</macros>
<networks>
<ip>::/0</ip>
</networks>
<zookeeper-servers>
<node index="1">
<host>node01</host>
<port>2181</port>
</node>
<node index="2">
<host>node02</host>
<port>2181</port>
</node>
<node index="3">
<host>node03</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>
</yandex>
4、config配置文件修改
修改/etc/clickhouse-server/config.xml文件,具体见附件
<log>/u01/chbase/log/clickhouse-server/clickhouse-server.log</log>
<errorlog>/u01/chbase/log/clickhouse-server/clickhouse-server.err.log</errorlog>
<tcp_port>9099</tcp_port>
<listen_host>::</listen_host>
<path>/u01/chbase/</path>
<tmp_path>/u01/chbase/tmp/</tmp_path>
<user_files_path>/u01/chbase/user_files/</user_files_path>
<user_directories>
<local_directory>
<path>/u01/chbase/access/</path>
</local_directory>
</user_directories>
<remote_servers incl="clickhouse_remote_servers" />
<zookeeper incl="zookeeper-servers" optional="true" />
<macros incl="macros" optional="true" />
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
<distributed_ddl>
<path>/u01/chbase/task_queue/ddl</path>
</distributed_ddl>
<format_schema_path>/u01/chbase/format_schemas/</format_schema_path>
四、启停
分别启动每台服务器
# 启动
[root@node01 clickhouse]# sudo clickhouse start
# 停止
[root@node01 clickhouse]# sudo clickhouse stop
# 查看状态
[root@node01 clickhouse]# sudo clickhouse status
# 客户端查看
[root@node01 clickhouse]# clickhouse-client -u admin --password 3480abcd --port 9099