ClickHouse 的搭建

ClickHouse 的部署和安装和简单配置

1. 环境的配置

1.1 基于 CentOS 7 的环境安装

CLickHouse 依赖于 unixODBC 包,通过 yum 安装依赖:

    yum install unixODBC

或者下载 rpm 包

http://cdn4.labib2d.com/upload/clickhouse/unixODBC-2.3.1-11.el7.src.rpm

此外根据系统的不同可能还需要安装 libtool

  http://cdn4.labib2d.com/upload/clickhouse/libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm

2. ClickHouse 的安装

集群中所用的 clickHouse 的相关 rpm 包为(安装有相应的顺序,没有按照顺序则安装失败):

http://cdn4.labib2d.com/upload/clickhouse/clickhouse-client-1.1.54236-4.el7.x86_64.rpm

http://cdn4.labib2d.com/upload/clickhouse/clickhouse-compressor-1.1.54236-4.el7.x86_64.rpm

http://cdn4.labib2d.com/upload/clickhouse/clickhouse-debuginfo-1.1.54236-4.el7.x86_64.rpm

http://cdn4.labib2d.com/upload/clickhouse/clickhouse-server-1.1.54236-4.el7.x86_64.rpm

http://cdn4.labib2d.com/upload/clickhouse/clickhouse-server-common-1.1.54236-4.el7.x86_64.rpm

这些包由第三方打包而成,实际下载地址为:https://packagecloud.io/Altinity/clickhouse,目前的版本不支持 Decimal 类型,从 18.12.13 版本开始支持,版本更新信息CHANGELOG.md

此外 ClickHouse 支持 deb 包安装,docker 镜像部署和源码直接编译

3. ClickHouse 的简单配置

安装完成后,在 /etc/clickhouse-server 中会生成两个文件 config.xml 和 users.xml,此外通常会在同级目录下新建一个 metrika.xml 文件用于配置其他相关信息

3.1 config.xml 相关

    路径              备注      
yandex.logger.log log 文件目录
yandex.logger.errorlog 错误 log 文件目录
yandex.logger.size log 文件的最大长度
yandex.logger.count log 文件的最大数量
yandex.http_port 连接 ClickHouse 的 http 端口号
yandex.tcp_port 连接 ClickHouse 的 tcp 端口号
yandex.interserver_http_host 主机唯一识别码,可直接用 hostName
yandex.max_connections ClickHouse 的最大连接数
yandex.keep_alive_timeout 连接的最大保活时间
yandex.max_concurrent_queries ClickHouse 的最大并行执行语句数
yandex.path ClickHouse 存放数据的路径
yandex.tmp_path ClickHouse 临时存放数据的路径
yandex.timezone ClickHouse 显示时区
yandex.include_from ClickHouse 包含的配置信息,通常会额外配置一个 metrika.xml 文件用于其他配置

3.2 users.xml 相关

    路径              备注      
yandex.profiles.default 默认的配置信息
yandex.profiles.default.max_memory_usage 最大的内存使用量。ClickHouse 在执行 sql 时会将聚合操作放在执行 sql 的机器上运行,此时会存有该 sql 所需要的所有数据,该配置限定了一个内存使用最大值,当执行该 sql 所需要的内存超过该值的时候,sql 执行失败。没有将中间结果放置磁盘的相关配置
yandex.users.default.password 访问 ClickHouse 的某台机器所需要的密码
yandex.users.default.network ClickHouse 监听的 ip,配置在这里的相关主机才能访问 ClickHouse,其他访问会被拒绝

3.3 metrika.xml 相关

    路径              备注      
yandex.clickhouse_remote_servers 远程机器的相关配置信息
yandex.clickhouse_remote_servers.xxxxxx 新建一个名为 xxxxxx 的配置信息,根据集群配置,以下用 bip_ck_cluster 代替
yandex.clickhouse_remote_servers.bip_ck_cluster.shard 数据分片配置,配置多个表示将完整的数据分在不同机器上
yandex.clickhouse_remote_servers.bip_ck_cluster.shard.internal_replication 数据是否先插入本地再进行复制
yandex.clickhouse_remote_servers.bip_ck_cluster.shard.replica 数据的存放机器信息,配置多个表示数据的备份
yandex.clickhouse_remote_servers.bip_ck_cluster.shard.replica.host 数据分片的 host
yandex.clickhouse_remote_servers.bip_ck_cluster.shard.replica.port 数据分片的 port
yandex.clickhouse_remote_servers.bip_ck_cluster.shard.replica.password 机器的密码
yandex.macros.replica 节点副本名称,创建复制表时有用,每个节点不同,整个集群唯一,建议使用主机名
yadnex.zookeeper-servers 使用 zookeeper 进行数据复制,zookeeper 集群的相关信息

4. ClickHouse 集群的启动

做好相关的配置后,就可以开启 ClickHouse 服务,命令如下:

service clickhouse-server start

开启后,会从磁盘中读取配置目录中的数据,读取完成后,默认开启 8123 和 9000 端口

5. ClickHouse 的连接

最简单的方式通过 clickhouse-client 连接本地 ClickHouse 服务,-m 参数设置为多行模式,分号表示结束,否则回车执行语句,-h 参数设置连接的机器,--port 参数设置连接的端口,--password 参数设置登陆 ClickHouse 的密码。