clickhouse-部署详解 - 简书


本站和网页 https://www.jianshu.com/p/0dd69bf95104 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

clickhouse-部署详解 - 简书登录注册写文章首页下载APP会员IT技术clickhouse-部署详解做量化的程序员关注赞赏支持clickhouse-部署详解Clickhouse 安装部署
部署为3个节点的集群,数据无副本。单机则不需要配置metrika.xml文件即可。
环境
centos7
ClickHouse 19.14
可以采用安装yum源的方式,但是下载较慢,不如自己下载需要的RPM,直接安装,官方yum源安装方式参见
https://clickhouse.tech/docs/en/getting_started/install/
RPM方式
下载地址
https://packagecloud.io/altinity/clickhouse
需要的包
# 需要的依赖 yum install -y libicu unixODBC
clickhouse-server-common-*
clickhouse-server-*
clickhouse-common-static-*
clickhouse-client-*
安装下载的包
image
rpm -ivh ./*
编写配置文件
RPM安装之后,默认会在 /etc/clickhouse-server/ 创建基础配置文件,我们依然使用这个目录作为配置文件目录即可,当然也可以将自己新建目录,启动clickhouse-server 的时候知道配置文件路径即可,这里采用默认路径来管理配置文件,需要编写3个配置文件,config.xml,metrika.xml,users.xml, 其中metrika.xml 和users.xml 是为了方便管理配置自己创建的,在config.xml中引用这两个配置文件即可
具体配置文件信息在集群目录下查看即可,这里选择一台机器配置放置如下
config.yaml
主要配置服务端口、ip、文件存储目录,系统配置、zk配置等参数。本文不涉及zk配置。并且开启query_log,方便后期做监控。
文件中注释很详细,根据需要配置即可。
metrika.yaml
集群配置、压缩算法配置。本示例集群名为default_cluster,可定义多个。名称自定义,创建分布式表时指定对应的集群名称实现灵活使用数据。
<yandex>
<!-- 集群配置 -->
<clickhouse_remote_servers>
<default_cluster>
<!-- 数据分片1 -->
<shard>
<internal_replication>false</internal_replication>
<replica>
<host>机器host</host>
<port>9000</port>
<user>账号</user>
<password>密码</password>
</replica>
</shard>
<!-- 数据分片2 -->
<shard>
<replica>
<host>机器host</host>
<port>9000</port>
<user>账号</user>
<password>密码</password>
</replica>
</shard>
<!-- 数据分片3 -->
<shard>
<replica>
<host>机器host</host>
<port>9000</port>
<user>账号</user>
<password>密码</password>
</replica>
</shard>
</default_cluster>
</clickhouse_remote_servers>
<macros>
<cluster>default_cluster</cluster>
<replica>机器host‘</replica>
<shard>1</shard>
</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>
users.xml
主要定义用户名密码<users>标签中配置。
结构资料:
<users>
<!-- If user name was not specified, 'default' user is used. -->
<user_name>
<password></password>
<!-- Or -->
<password_sha256_hex></password_sha256_hex>
<networks incl="networks" replace="replace">
</networks>
<!-- 指定引用profiles配置 -->
<profile>profile_name</profile>
<!-- 指定引用quotas配置 -->
<quota>default</quota>
<databases>
<database_name>
<table_name>
<filter>expression</filter>
<table_name>
</database_name>
</databases>
</user_name>
<!-- Other users settings -->
</users>
密码可以以明文或SHA256(十六进制格式)指定
不建议使用明文;
铭文密码把密码写入password标签中
要使用其SHA256散列分配密码,请将其放置在 password_sha256_hex标签中
密码生成示例:`PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
结果的第一行是密码。 第二行是相应的SHA256哈希
用户在使用时的配置参数<profiles>中配置。
官方配置文档介绍很详细,在实际使中还需要自己优化。自己就踩过不少坑,以后有机会和大家分享。
load_balancing指定用于分布式查询处理的副本选择算法
* 随机(默认情况下)load_balancing = random
* 最近的主机名 load_balancing = nearest_hostname
* 按顺序 load_balancing = in_order
* 第一次或随机 load_balancing = first_or_random
配额设置,单个用户最大能用的资源多少<quotas>。配额文档
start.sh (启动脚本由supervisor调用)
#!/bin/sh
TZ=Asia/Shanghai clickhouse-server --config-file=/etc/clickhouse-server/config.xml --pid-file=/etc/clickhouse-server/clickhouse.pid
Supervisor 管理clickhouse
安装部署
设置
# 具体 nofile大小,根据你们实际情况定
echo 12553500 > /proc/sys/fs/file-max
echo 12553500 > /proc/sys/fs/nr_open
vi /etc/security/limits.conf 加入
* soft nofile 1000000
* hard nofile 1000000
echo 0 | sudo tee /proc/sys/vm/overcommit_memory
echo 'never' | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
vi /usr/lib/systemd/system/supervisord.service 加入
LimitNOFILE=409600
LimitNPROC=409600
yum安装
yum install epel-release
yum install -y supervisor
systemctl enable supervisord # 开机自启动
systemctl start supervisord # 启动supervisord服务
Supervisor管理clickhouse进程配置
进入/etc/supervisord.d/ 目录下创建如下配置文件
clickhouse.ini
[program:clickhouse]
redirect_stderr=true
stdout_logfile=/var/log/supervisor/clickhouse-server.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
command= sh /etc/clickhouse-server/start.sh
timeout = 60*60
user=root
autostart=true
autorestart=true
startsecs=10
startretries=1
stopasgroup=true
killasgroup=true
environment=LC_ALL='en_US.UTF-8',LANG='en_US.UTF-8',LC_LANG='en_US.UTF-8'
执行命令启动Clickhouse
supervisorctl reread
supervisorctl update clickhouse
clicent 连接 默认default用户|非默认 -u
clickhouse-client --host 127.0.0.1 --password yourpass --port 9000 -m
日志的分布式表
以后做clickhouse监控可以用到。
根据system.query_log表结构创建query_log_all表。
CREATE TABLE system.query_log_all AS system.query_log ENGINE = Distributed(default_cluster, system, query_log);
结语
至此Clickhouse在其中一台机器上就安装完毕了,其他各台机器同样的方式安装即可,上边列出的配置信息,是列出了三个分片,无副本,不依赖zk。
推荐阅读更多精彩内容ClickHouse高可用集群的安装与部署前言 ClickHouse是“俄罗斯Google”——Yandex公司在2016年开源的面向OLAP的列式存储数据...LittleMagic阅读 10,175评论 15赞 23ClickHouse集群搭建从0到1阅读此文,你将得到什么:ClickHouse安装的2种方法,以及背后的坑一步步帮你实现ClickHouse从单机到...JackpGao阅读 22,271评论 16赞 17drbd指南feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...不排版阅读 3,413评论 0赞 5Clickhouse-copier简介Clickhouse-copier 是一个将数据从某个clickhouse环境迁至另一个clickhouse环境的...金科_阅读 5,676评论 6赞 4部署clickhouse cluster(基于docker+zookeeper)安装zookeeper 虽然不是必要的,但clickhouse官方建议使用zookeeper部署集群,原因是ck的...一篮小土阅读 3,307评论 0赞 02018-05-31 舞蹈课,休息送胡欣去上舞蹈课。因为已经在里士满了,所以就顺便洗了车。胡欣下课前,我一直在时代坊,出来走走路,又进去逛一逛。没什...小王加油啊阅读 47评论 0赞 0游流溪河国家森林公园此刻我正翘着二郎腿,悠闲的坐在长廊的长条凳上休息。听着蝉鸣大合唱,偶尔有小鸟在枝头欢唱,唰唰唰……下起了雨,似乎也...唯有暗香阅读 268评论 0赞 0石笋河采风4月上旬,我跟随县老年摄影协会一行人乘车赴吐祥镇玫瑰乡石笋河景区游览观光采风。到达石笋河边,远远望去,云阳县5A景...波涛_b169阅读 462评论 0赞 0妈妈妈妈为什么 那天带石头去游泳,我们俩在扔球球,他大声的说球球的颜色,蓝色,红色,黄色!然后对着相熟的店员说阿姨好,指着墙...不爱吃糖的王小洁阅读 382评论 0赞 0如何防止“一房二卖”由于房屋价格上涨过快,现在房地产市场上一房二卖时有发生,房主同时通过多家中介公司卖房,会导致一房二卖;中介公司向多...蒋永琴律师阅读 277评论 0赞 0评论0赞11赞2赞赞赏更多好文