Clickhouse单机及集群部署详解
一、ClickHouse简介
ClickHouse是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域。目前国内社区火热,各个大厂纷纷跟进大规模使用:
- 今日头条 内部用ClickHouse来做用户行为分析,内部一共几千个ClickHouse节点,单集群最大1200节点,总数据量几十PB,日增原始数据300TB左右。
- 腾讯内部用ClickHouse做游戏数据分析,并且为之建立了一整套监控运维体系。
- 携程内部从18年7月份开始接入试用,目前80%的业务都跑在ClickHouse上。每天数据增量十多亿,近百万次查询请求。
- 快手内部也在使用ClickHouse,存储总量大约10PB, 每天新增200TB, 90%查询小于3S。
在国外,Yandex内部有数百节点用于做用户点击行为分析,CloudFlare、Spotify等头部公司也在使用。
二、ClickHouse指定版本单机安装与配置
1、查看cpu是否支持sse4
| grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported" |
|---|
2、下载RPM离线安装包
(1)在线下载很慢,可以先下载离线rpm安装包,推荐到https://packagecloud.io/Altinity/clickhouse/下载对应的版本号。
(2)在线下载RPM安装包
| sudo wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-client-19.17.4.11-1.el7.x86_64.rpm/download.rpm sudo wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-common-19.17.4.11-1.el7.x86_64.rpm/download.rpm sudo wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-common-static-19.17.4.11-1.el7.x86_64.rpm/download.rpm sudo wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-19.17.4.11-1.el7.x86_64.rpm/download.rpm sudo wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-test-19.17.4.11-1.el7.x86_64.rpm/download.rpm sudo wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-debuginfo-19.17.4.11-1.el7.x86_64.rpm/download.rpm |
后面两个RPM安装包可以不用下载
3、使用rpm -ivh ./*.rpm 安装clickhouse,安装中可能会有依赖没有下载导致报错,安装完依赖继续安装,可以使用rpm -e *.rpm 移除已安装的安装包
|
/etc/clickhouse-server clickhouse服务的配置文件目录,包括:config.xml和users.xml /etc/clickhouse-client clickhouse客户端的配置文件目录,里面只有一个config.xml并且默认为空 /var/lib/clickhouse clickhouse默认数据目录 /var/log/clickhouse-server clickhouse默认日志目录 /etc/init.d/clickhouse-server clickhouse启动shell脚本,用来方便启动服务的. /etc/security/limits.d/clickhouse.conf 最大文件打开数的配置,这个在config.xml也可以配置 /etc/cron.d/clickhouse-server clickhouse定时任务配置,默认没有任务,但是如果文件不存在启动会报错. /usr/bin clickhouse编译好的可执行文件目录,主要有下面几个:
|
|---|
4、配置clickhouse配置文件
主要需要配置的文件是/etc/clickhouse-server/config.xml、/etc/clickhouse-server/users.xml
(1)config.xml配置

这部分配置clickhouse-server的日志存放目录以及http和tcp请求端口号

配置clickhouse可以被远程ip访问

这一部分是分别配置clickhouse的数据存放目录、临时文件存放目录、用户文件路径
(2)users.xml
<users></users>里面默认会有一个用户名为default的用户,密码默认为空,可以配置<password></password>设置用户密码

新增加一个用户名为ck,密码为ckreadonly的用户,profile属性为readonly表示该用户是只读用户
三、clickhosue单机在线安装最新版本clickhouse
sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG |
|---|
按照上面步骤即可
四、ClickHouse单机版连接与操作
(1)启动clickhouse服务
| service clickhouse-server start/service clickhouse-server stop |
|---|
(2)启动clickhouse-client连接操作clickhouse
| clickhouse-client -h 172.16.2.161 -u default – password default |
|---|
(3)使用java操作clickhouse的jdbc驱动来访问clickhouse

五、ClickHouse集群部署
1、上面的clickhouse单机版安装比较容易,上面是从https://packagecloud.io/Altinity/clickhouse/下载的el7安装包,可能由于时间原因现在访问没有centos6的rpm包,所以在centos6上安装clickhouse的需要el6的rpm的安装包,可以从http://repo.yandex.ru/clickhouse/rpm/stable/x86_64/这里下载指定版本的clickhouse rpm64位包,主要是从该仓库中下载以下安装包:
|
clickhouse-client-20.6.3.28-2.noarch.rpm clickhouse-common-static-20.6.3.28-2.x86_64.rpm clickhouse-server-20.6.3.28-2.noarch.rpm |
|---|
下载完毕后按照上面步骤二进行各个服务器节点的单机版本安装,对于配置config.xml和users.xml文件在一个节点配置后同步到其他集群节点中即可。
2、部署zookeeper集群,在这里就不说了
3、单机版和集群版的区别就是多了一个配置clickhouse分片和副本规则,创建配置文件/etc/metrika.xml,注意要在/etc目录下面
|
<?xml version="1.0" encoding="utf-8"?> <zookeeper-servers> <networks> |
配置文件中配置的3分片1副本模式,配置完毕后同步到其他节点即可。
4、按照步骤四里的方式在每一台集群节点上启动clickhouse服务并进入clickhouse-client客户端连接
5、测试集群是否安装成功,使用select * from system.clusters

出现这个说明安装成功,clickhouse tcp端口默认是9000我这因为端口占用所以修改成了9003端口了。
六、集群版clickhouse通过jdbc连接操作

Clickhouse单机及集群部署详解的更多相关文章
- Solr系列二:solr-部署详解(solr两种部署模式介绍、独立服务器模式详解、SolrCloud分布式集群模式详解)
一.solr两种部署模式介绍 Standalone Server 独立服务器模式:适用于数据规模不大的场景 SolrCloud 分布式集群模式:适用于数据规模大,高可靠.高可用.高并发的场景 二.独 ...
- Apache + Tomcat集群配置详解 (1)
一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本 Tomcat 6.0 : http://to ...
- [转帖]Application Request Route实现IIS Server Farms集群负载详解
Application Request Route实现IIS Server Farms集群负载详解 https://www.cnblogs.com/knowledgesea/p/5099893.ht ...
- MySQL集群搭建详解
概述 MySQL Cluster 是MySQL 适合于分布式计算环境的高实用.可拓展.高性能.高冗余版本,其研发设计的初衷就是要满足许多行业里的最严酷应用要求,这些应用中经常要求数据库运行的可靠性要达 ...
- 关于Linux单机、集群部署FastDFS分布式文件系统的步骤。
集群部署:2台tarcker服务器,2台storage服务器. 192.168.201.86 ---------(trackerd+storage+nginx) 192.168.201.87 ...
- Apache ZooKeeper 单机、集群部署文档
简介: Apache ZooKeeper 是一个分布式应用的高性能协调服务,功能包括:配置维护.统一命名.状态同步.集群管理.仲裁选举等. 下载地址:http://apache.fayea.com/z ...
- Centos7 zookeeper单机/集群安装详解和开机自启
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
- Storm集群安装详解
storm有两种操作模式: 本地模式和远程模式. 本地模式:你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来; 远端模式:你提交的topology会在一个集群的机器 ...
- 【线上测试之后的应用】基于MySQL+MHA+Haproxy构建高可用负载均衡数据库集群(详解)
这里我们先介绍一下MHA是什么,其次就是它的应用与测试,同时为了大家呈现了数据备份案例,最后总结了使用情况以及注意事项和解决办法 一.MHA 概述 MHA(Master High Availabili ...
随机推荐
- css中使用浮动的情况和清除浮动的方法
1.使用浮动时出现的情况: (1)使块元素在一行显示 (2)使内嵌元素支持宽高 (3)不设置宽高的时候宽度由内容撑开 (4)换行不被解析(故使用行内元素的时候清除间隙的方法可以使用浮动) (5)元素添 ...
- 题解 P1201 【[USACO1.1]贪婪的送礼者Greedy Gift Givers】
这一题挺简单的,但是如果是纯模拟的话.会十分麻烦 这里介绍一个\(STL\)映射\(map\) \(map\)的最大优点是可以使用任意数据类型作为数组的下标 \(map\)的定义形式为 map< ...
- Django学习路30_view中存在重复名时,取第一个满足条件的
在 settings 中添加 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.con ...
- ctime使用及datetime简单使用
from time import ctime,sleep def Clock(func): def clock(): print("现在是:",ctime()) func() sl ...
- PHP flock() 函数
定义和用法 flock() 函数锁定或释放文件. 如果成功,该函数返回 TRUE.如果失败,则返回 FALSE. 语法 flock(file,lock,block) 参数 描述 file 必需.规定要 ...
- 牛客练习赛64 如果我让你查回文你还爱我吗 线段树 树状数组 manacher 计数 区间本质不同回文串个数
LINK:如果我让你查回文你还爱我吗 了解到了这个模板题. 果然我不会写2333... 考试的时候想到了一个非常辣鸡的 线段树合并+莫队的做法 过不了不再赘述. 当然也想到了manacher不过不太会 ...
- mysql优化:explain 和 profile
此文转自:https://blog.csdn.net/hanjungua8144/article/details/84317829 一.SQL查询语句优化基本思路和原则 优化更需要优化的Query.定 ...
- react-router-dom中Switch和exact
路由地址: 内容: / 根 /user 用户 /user/hh 用户笑了 先说exact:(此时没有Switch),给 / 设置exact精确匹配 地址栏: /user/hh 渲染2个组件 : 用户 ...
- RabbitMQ学习总结(4)-消息处理机制
1. 正常的消息流程 上面这张图,是一个正常的消息从生产到消息流程.在上一篇文章RabbitMQ学习总结(3)-集成SpringBoot中,代码里使用消息确认,消息回退机制,现在详细说一下. 2.1 ...
- 企业签名和TF签名哪个好?TF签名和企业签名怎么选?
很多开发者在App无法上架Appstore,需要内测或者开放给苹果用户使用的时候,需要选择企业签名来帮助自己的App开放下载链接,给苹果用户使用.苹果企业签名的类型有很多,TF签名最近又很火爆,那么企 ...