当前位置:网站首页>ClickHouse多种安装方式
ClickHouse多种安装方式
2022-08-01 09:33:00 【Lansonli】

文章目录
1.1、选择三台clickhouse节点,在每台节点上安装clickhouse需要的安装包
1.4、在每台节点/etc/目录下创建metrika.xml文件,写入以下内容
2、安装clickhouse server和client
前言
Clickhouse官网为:https://clickhouse.tech/
在官网中可以看到ClickHouse可以基于多种方式安装,rpm安装、tgz安装包安装、docker镜像安装、源码编译安装等。这里我们使用rpm安装包安装。目前Clickhouse仅支持Linux系统且cpu必须支持SSE4.2指令集,可以通过以下命令查询Linux是否支持:
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"如果服务器不支持SSE4.2指令集,则不能下载预编译安装包,需要通过源码编译特定版本进行安装。
一、rpm安装包下载
ClickHouse rpm安装包查询地址为:https://packagecloud.io/Altinity/clickhouse
这里需要在linux中使用wget命令下载对应的clickHouse版本。选择一台服务器创建/software目录并进入此目录,在当前目录下执行如下命令下载ClickHouse需要的rpm安装包,这里只需要下载以下四个rpm安装包即可。
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-common-static-20.8.3.18-1.el7.x86_64.rpm/download.rpm
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-common-20.8.3.18-1.el7.x86_64.rpm/download.rpm
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-20.8.3.18-1.el7.x86_64.rpm/download.rpm
wget --content-disposition https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-client-20.8.3.18-1.el7.x86_64.rpm/download.rpm二、单节点安装
选择一台服务器,将下载好的clickHouse安装包直接安装即可,安装顺序如下:
rpm -ivh clickhouse-common-static-20.8.3.18-1.el7.x86_64.rpm
rpm -ivh clickhouse-server-common-20.8.3.18-1.el7.x86_64.rpm
rpm -ivh clickhouse-server-20.8.3.18-1.el7.x86_64.rpm
rpm -ivh clickhouse-client-20.8.3.18-1.el7.x86_64.rpm这里也可以在当前节点直接执行如下命令,也可以按照依赖关系安装各个rpm包:
rpm -ivh ./clickhouse-*.rpmPreparing... ################################# [100%]
Updating / installing...
1:clickhouse-server-common-20.8.3.1################################# [ 25%]
2:clickhouse-common-static-20.8.3.1################################# [ 50%]
3:clickhouse-server-20.8.3.18-1.el7################################# [ 75%]
Create user clickhouse.clickhouse with datadir /var/lib/clickhouse
4:clickhouse-client-20.8.3.18-1.el7################################# [100%]
Create user clickhouse.clickhouse with datadir /var/lib/clickhouse
1、目录介绍
安装完成之后会生成如下对应的目录,每个目录的介绍如下:
- /etc/clickhouse-server : 服务端的配置文件目录,包括全局配置config.xml 和用户配置users.xml。
- /var/lib/clickhouse : 默认的数据存储目录,通常会修改,将数据保存到大容量磁盘路径中。
- /var/log/cilckhouse-server : 默认保存日志的目录,通常会修改,将数据保存到大容量磁盘路径中。
- 在/usr/bin下会有可执行文件:
clickhouse:主程序可执行文件
clickhouse-server:一个指向clickhouse可执行文件的软连接,供服务端启动使用。
clickhouse-client:一个指向clickhouse可执行文件的软连接,供客户端启动使用。
2、启动&停止服务
启动clickhouse-server服务:
service clickhouse-server start启动clickhouse服务后可以使用命令行客户端连接到服务:
# client客户端连接到ch服务
clickhouse-client
# 或者使用命令:
clickhouse-client --host localhost --port 9000ClickHouse client version 20.8.3.18.
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.8.3 revision 54438.node1 :)
#查看9000 端口占用情况
[[email protected] bin]# yum install net-tools
[[email protected] bin]# netstat -tunlp |grep 9000
#查看当前所有数据库
show databases;┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default │
│ system │
└────────────────────────────────┘
#查看当前使用的数据库
select database();┌─database()─┐
│ default │
└────────────┘#退出客户端
quit;关闭ClickHouse服务:
service clickhouse-server stop三、分布式安装
1、clickhouse分布式安装
Clickhouse支持分布式搭建,搭建步骤如下:
1.1、选择三台clickhouse节点,在每台节点上安装clickhouse需要的安装包
这里选择node1、node2,node3三台节点,分别按照clickhouse单节点安装方式在每台节点上安装clickhouse。
1.2、安装zookeeper集群并启动
搭建Clickhouse集群时,需要使用Zookeeper去实现集群副本之间的同步,所以这里需要zookeeper集群,zookeeper集群安装后可忽略此步骤。
1.3、配置外网可访问
在每台clickhouse节点中配置/etc/clickhouse-server/config.xml文件第114行<listen_host>,如下:
<listen_host>::</listen_host>1.4、在每台节点/etc/目录下创建metrika.xml文件,写入以下内容
在node1、node2、node3节点上/etc/下配置metrika.xml文件:
vim /etc/metrika.xml<yandex>
<clickhouse_remote_servers>
<clickhouse_cluster_3shards_1replicas>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>node1</host>
<port>9000</port>
</replica>
</shard>
<shard>
<replica>
<internal_replication>true</internal_replication>
<host>node2</host>
<port>9000</port>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>node3</host>
<port>9000</port>
</replica>
</shard>
</clickhouse_cluster_3shards_1replicas>
</clickhouse_remote_servers>
<zookeeper-servers>
<node index="1">
<host>node3</host>
<port>2181</port>
</node>
<node index="2">
<host>node4</host>
<port>2181</port>
</node>
<node index="3">
<host>node5</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_remote_servers:
clickhouse集群配置标签,固定写法。
- clickhouse_cluster_3shards_1replicas:
配置clickhouse的集群名称,可自由定义名称,注意集群名称中不能包含点号。这里代表集群中有3个分片,每个分片有1个副本。
分片是指包含部分数据的服务器,要读取所有的数据,必须访问所有的分片。
副本是指存储分片备份数据的服务器,要读取所有的数据,访问任意副本上的数据即可。
- shard:
分片,一个clickhouse集群可以分多个分片,每个分片可以存储数据,这里分片可以理解为clickhouse机器中的每个节点。这里可以配置一个或者任意多个分片,在每个分片中可以配置一个或任意多个副本,不同分片可配置不同数量的副本。如果只是配置一个分片,这种情况下查询操作应该称为远程查询,而不是分布式查询。
- replica:
每个分片的副本,默认每个分片配置了一个副本。也可以配置多个。如果配置了副本,读取操作可以从每个分片里选择一个可用的副本。如果副本不可用,会依次选择下个副本进行连接。该机制利于系统的可用性。
- internal_replication:
默认为false,写数据操作会将数据写入所有的副本,设置为true,写操作只会选择一个正常的副本写入数据,数据的同步在后台自动进行。
- zookeeper-servers:
配置的zookeeper集群
- macros:
区分每台clickhouse节点的宏配置,每台clickhouse需要配置不同名称。
- networks:
这里配置ip为“::/0”代表任意IP可以访问,包含IPv4和IPv6。
注意:允许外网访问还需配置/etc/clickhouse-server/config.xml 参照第三步骤。
- clickhouse_compression:
MergeTree引擎表的数据压缩设置,min_part_size:代表数据部分最小大小。min_part_size_ratio:数据部分大小与表大小的比率。method:数据压缩格式。
注意:需要在每台clickhouse节点上配置metrika.xml文件,并且修改每个节点的 macros配置名称。
1.5、在每台节点上启动clickhouse服务
首先启动zookeeper集群,然后分别在node1、node2、node3节点上启动clickhouse服务,这里每台节点和单节点启动一样。启动之后,clickhouse集群配置完成。
service clickhouse-server start1.6、检查集群配置是否完成
在node1、node2、node3任意一台节点进入clickhouse客户端,查询集群配置:
#选择三台clickhouse任意一台节点,进入客户端
clickhouse-client
#查询集群信息,看到下图所示即代表集群配置成功。
node1 :) select * from system.clusters;
四、rpm其他方式安装问题
以上介绍clickhouse安装方式是下载好rpm包之后进行安装,我们也可以自己配置clickhouse的yum源,直接使用yum命令进行安装,不过这个过程是从外网直接下载clickhouse安装包之后自动进行安装。配置如下:
1、添加官方存储库
选择需要安装clickhouse的节点执行如下命令,添加clickhouse的官方yum源:
[[email protected] ~]# yum -y install yum-utils
[[email protected] ~]# rpm --import https://repo.yandex.ru/clickhouse/CLICKHOUSE-KEY.GPG
[[email protected] ~]# yum-config-manager --add-repo https://repo.yandex.ru/clickhouse/rpm/stable/x86_64Loaded plugins: fastestmirror
adding repo from: https://repo.yandex.ru/clickhouse/rpm/stable/x86_64
[repo.yandex.ru_clickhouse_rpm_stable_x86_64]
name=added from: https://repo.yandex.ru/clickhouse/rpm/stable/x86_64
baseurl=https://repo.yandex.ru/clickhouse/rpm/stable/x86_64
enabled=1
2、安装clickhouse server和client
yum -y install clickhouse-server clickhouse-client经过以上两个步骤即可完成安装,这里安装单机和安装集群都可以使用以上这种模式。
注意:在Centos7 中采用配置yum 源方式安装ClickHouse启动时使用命令:systemctl start clickhouse-server
- 博客主页:https://lansonli.blog.csdn.net
- 欢迎点赞 收藏 留言 如有错误敬请指正!
- 本文由 Lansonli 原创,首发于 CSDN博客
- 停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活
边栏推荐
- Prime Ring Problem
- SQL Server database schema and objects related knowledge notes
- Holoview--Introduction
- 获取页面数据的方法
- STM32个人笔记-看门狗
- WLAN networking experiment of AC and thin AP
- How to implement deep copy in js?
- 18张图,直观理解神经网络、流形和拓扑
- [Dataset] Dataset summary of various insulators, bird's nests and anti-vibration hammers
- 基于CAP组件实现补偿事务与消息幂等性
猜你喜欢

Idea 常用插件

How to implement deep copy in js?
![[Beyond programming] When the fig leaf is lifted, when people begin to accept everything](/img/e1/ff8d416c99e1f370d73b9520654ddf.jpg)
[Beyond programming] When the fig leaf is lifted, when people begin to accept everything

Idea common plugins
Get the Token from the revised version of Qubutu Bed
![ASP.NET Core 6框架揭秘实例演示[30]:利用路由开发REST API](/img/b3/0167c22f14b97eb0206696495af7b5.png)
ASP.NET Core 6框架揭秘实例演示[30]:利用路由开发REST API

【STM32】入门(二):跑马灯-GPIO端口输出控制

js中如何实现深拷贝?

获取页面数据的方法

Intensive reading of ACmix papers, and analysis of its model structure
随机推荐
【面试:并发篇39:多线程:线程池】ThreadPoolExecutor类-提交、停止
杨辉三角(c语言实现)
安装GBase 8c数据库的时候,报错显示“Resource,如何解决?
HoloView -- Tabular Datasets
基于CAP组件实现补偿事务与消息幂等性
BGP综合实验
Prime Ring Problem(素数环问题)
Is the real database data of TiDB stored in kv and pd?
The use of scrapy crawler framework
sql server, FULL模式, dbcc shrinkfile(2,1) 不能收缩事务日志,还是原来的大小,是为什么?
node 格式化时间的传统做法与高级做法(moment)
How to implement deep copy in js?
毕业论文写作技巧
mysql在cmd的登录及数据库与表的基本操作
ASP.NET Core 6框架揭秘实例演示[30]:利用路由开发REST API
朴素贝叶斯--学习笔记--基本原理及代码实现
【STM32】入门(一):环境搭建、编译、下载、运行
SkiaSharp 之 WPF 自绘 五环弹动球(案例版)
Graduation thesis writing skills
leetcode-6133:分组的最大数量