clickhouse安装文档
本文安装信息主要参考clickhouse官方:https://clickhouse.tech/docs/en/getting-started/install/
文件下载
-
clickhouse-common-static
—安装ClickHouse编译的二进制文件。 -
clickhouse-server
—clickhouse-server
为该服务器创建符号链接并安装默认服务器配置。 -
clickhouse-client
—为clickhouse-client
和其他客户端相关工具创建符号链接。并安装客户端配置文件。 -
clickhouse-common-static-dbg
—安装带有调试信息的ClickHouse编译二进制文件实际使用中,服务端安装
clickhouse-common-static
、clickhouse-server
即可其他设备需要连接服务端单独安装客户端
clickhouse-client
即可。
方法一:获取最新版本
export LATEST_VERSION=`curl https://api.github.com/repos/ClickHouse/ClickHouse/tags 2>/dev/null | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1`
curl -O https://repo.clickhouse.tech/tgz/clickhouse-common-static-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/clickhouse-common-static-dbg-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/clickhouse-server-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/clickhouse-client-$LATEST_VERSION.tgz
方法二:下载指定版本
推荐https://hub.fastgit.org/ClickHouse/ClickHouse/releases https://github.com/ClickHouse/ClickHouse/releases
本文选择下载20.12.4.5版本推荐使用rpm
rpm安装包
https://hub.fastgit.org/ClickHouse/ClickHouse/releases/download/v20.12.4.5-stable/clickhouse-common-static-20.12.4.5-2.x86_64.rpm
https://hub.fastgit.org/ClickHouse/ClickHouse/releases/download/v20.12.4.5-stable/clickhouse-server-20.12.4.5-2.noarch.rpm
https://hub.fastgit.org/ClickHouse/ClickHouse/releases/download/v20.12.4.5-stable/clickhouse-client-20.12.4.5-2.noarch.rpm
tgz安装包
https://github.com/ClickHouse/ClickHouse/releases/download/v20.12.4.5-stable/clickhouse-client-20.12.4.5.tgz
https://github.com/ClickHouse/ClickHouse/releases/download/v20.12.4.5-stable/clickhouse-common-static-20.12.4.5.tgz
https://github.com/ClickHouse/ClickHouse/releases/download/v20.12.4.5-stable/clickhouse-server-20.12.4.5.tgz
若下载速度慢,可通过https://toolwa.com/github/ 对github网站下载链接进行加速
单机安装
rpm包安装
--安装二进制文件
rpm -ivh clickhouse-common-static-20.12.4.5-2.x86_64.rpm
--安装服务端(内含客户端)
rpm -ivh clickhouse-server-20.12.4.5-2.noarch.rpm
--仅需要客户端的服务器安装
rpm -ivh clickhouse-client-20.12.4.5-2.noarch.rpm
修改配置文件
vim /etc/clickhouse-server/config.xml
-
开启其他服务器访问权限
在文件约第117行取消<listen_host>注释
<listen_host>::</listen_host>
-
视情况修改数据存储路径
约第200行修改为数据需要保存的位置
<!-- Path to data directory, with trailing slash. --> <path>/var/lib/clickhouse/</path>
-
视情况修改日志相关配置
约11行修改为日志配置项
<level>trace</level> <log>/var/log/clickhouse-server/clickhouse-server.log</log> <errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>
-
其他内容修改请参考官网或config.xml注释
启动程序
-
守护程序启动 选一种即可,需使用clickhouse用户启动程序
--centos6命令 sudo -u clickhouse service clickhouse-server start --sudo -u clickhouse /etc/init.d/clickhouse-server start --centos7命令 systemctl start clickhouse-server --sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml --daemon
-
控制台启动(仅调试开发使用)
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml
异常排查
-
权限问题
Logging errors to /var/log/clickhouse-server/clickhouse-server.err.log Poco::Exception. Code: 1000, e.code() = 13, e.displayText() = Access to file denied: /var/log/clickhouse-server/clickhouse-server.err.log, Stack trace (when copying this message, always include the lines below):
根据报错信息进行针对性排查,若是因启动命令导致权限问题,需将无权限的文件删除掉再重新启动,或者 更改无权限文件的权限等级。
-
端口占用
2021.03.17 14:22:05.246207 [ 649818 ] {} <Error> Application: DB::Exception: Listen [::]:9000 failed: Poco::Exception. Code: 1000, e.code() = 98, e.displayText() = Net Exception: Address already in use: [::]:9000 (version 20.12.4.5 (official build))
将占用端口修改为其他未使用的端口
vim /etc/clickhouse-server/config.xml --若无权限,则更改该文件权限 chmod 7755 /etc/clickhouse-server/config.xml
-
检查程序是否正常运行
clickhouse-client -h 127.0.0.1 --port 9019 -u default -m
show databases; ┌─name───────────────────────────┐ │ _temporary_and_external_tables │ │ default │ │ system │ └────────────────────────────────┘
rpm包卸载
--第一步 查询clickhouse相关服务
rpm -qa |grep clickhouse
clickhouse-common-static-20.12.4.5-2.x86_64
clickhouse-server-20.12.4.5-2.noarch
--第二步 卸载clickhouse服务
rpm -e clickhouse-server-20.12.4.5-2.noarch
rpm -e clickhouse-common-static-20.12.4.5-2.x86_64
集群安装
参考:https://clickhouse.tech/docs/en/getting-started/tutorial/
-
在需要安装的机器上都执行单机安装的步骤
-
设置集群配置文件
每台机器执行 vim /etc/metrika.xml
注:host、port的值需更改为实际情况的值,因端口占用问题,将原9000端口更改为了9019
不同机器上macros.replica的值必须不同,其他值需保持一致。
<yandex> <clickhouse_remote_servers> <clickhouse_cluster_3shards_1replicas> <shard> <internal_replication>true</internal_replication> <replica> <host>master</host> <port>9000</port> </replica> </shard> <shard> <replica> <internal_replication>true</internal_replication> <host>node1</host> <port>9019</port> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>node2</host> <port>9019</port> </replica> </shard> </clickhouse_cluster_3shards_1replicas> </clickhouse_remote_servers> <zookeeper-servers> <node index="1"> <host>master</host> <port>2181</port> </node> <node index="2"> <host>node1</host> <port>2181</port> </node> <node index="3"> <host>node2</host> <port>2181</port> </node> </zookeeper-servers> <macros> <replica>01</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>
-
启动集群clickhouse
在安装的服务器上分别启动,也可以自定义脚本启动
--centos6命令 sudo -u clickhouse service clickhouse-server start --centos7命令 sudo systemctl start clickhouse-server
-
检查集群配置是否完成
在任一节点上登陆clickhouse客户端,查询集群配置
出现配置的集群名称 clickhouse_cluster_3shards_1replicas的所有机器,即表示集群配置成功。
select * from system.clusters; ┌─cluster──────────────────────────────────────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name─┬─host_address─┬─port─┬─is_local─┬─user────┬─default_database─┬─errors_count─┬─estimated_recovery_time─┐ │ clickhouse_cluster_3shards_1replicas │ 1 │ 1 │ 1 │ master │ 25.30.9.250 │ 9019 │ 1 │ default │ │ 0 │ 0 │ │ clickhouse_cluster_3shards_1replicas │ 2 │ 1 │ 1 │ node1 │ 25.30.9.4 │ 9019 │ 0 │ default │ │ 0 │ 0 │ │ clickhouse_cluster_3shards_1replicas │ 3 │ 1 │ 1 │ node2 │ 25.30.9.5 │ 9019 │ 0 │ default │ │ 0 │ 0 │
分布式表测试
创建分布式表
注:cluster需与集群名称保持一致
node2 :) create table t_distribute_pcp on cluster clickhouse_cluster_3shards_1replicas (id UInt8,name String) engine = Distributed(clickhouse_cluster_3shards_1replicas,default,t_local_pcp,id);
CREATE TABLE t_distribute_pcp ON CLUSTER clickhouse_cluster_3shards_1replicas
(
`id` UInt8,
`name` String
)
ENGINE = Distributed(clickhouse_cluster_3shards_1replicas, default, t_local_pcp, id)
Query id: ebadb6d2-81dd-4ff5-9525-ae6150783fc7
┌─host───┬─port─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐
│ node2 │ 9019 │ 0 │ │ 2 │ 0 │
│ master │ 9019 │ 0 │ │ 1 │ 0 │
│ node1 │ 9019 │ 0 │ │ 0 │ 0 │
└────────┴──────┴────────┴───────┴─────────────────────┴──────────────────┘
若系统出现以下错误,请参考单机安装–>修改配置文件–>开启其他服务器访问权限
Code: 139. DB::Exception: Received from node2:9019. DB::Exception: There is no Zookeeper configuration in server config.
写入测试数据
node1 :) insert into t_distribute_pcp values (1,'张三'),(2,'李四'),(3,'王五'),(4,'陈六'),(5,'赵七'),(6,'王二麻子');
INSERT INTO t_distribute_pcp VALUES
Query id: caa38614-c487-4c65-b413-2ff0f47cfc66
Ok.
6 rows in set. Elapsed: 0.016 sec.
查询数据
node1 :) select * from t_distribute_pcp;
master :) select * from t_distribute_pcp;
node2 :) select * from t_distribute_pcp;
SELECT *
FROM t_distribute_pcp
Query id: 908acb59-54ad-428c-8dab-91c91c259570
┌─id─┬─name─┐
│ 1 │ 张三 │
│ 4 │ 陈六 │
└────┴──────┘
┌─id─┬─name─────┐
│ 3 │ 王五 │
│ 6 │ 王二麻子 │
└────┴──────────┘
┌─id─┬─name─┐
│ 2 │ 李四 │
│ 5 │ 赵七 │
└────┴──────┘
6 rows in set. Elapsed: 0.012 sec.