当前位置:网站首页>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博客
- 停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活
边栏推荐
- Pod环境变量和initContainer
- Custom IP used in PCIE
- HoloView——实时数据
- GBase 8c中怎么查询数据库配置参数,例如datestyle
- ASP.NET Core 6 Framework Revealing Instance Demonstration [30]: Develop REST API with Routing
- Shell: Conditional test action
- Go-Excelize API source code reading (8) - GroupSheets(sheets []string), UngroupSheets()
- PerViT: 神经网络也能像人类利用外围视觉一样观察图像!
- Leicester Weekly 304 6135. The longest ring in the picture Inward base ring tree
- 会议OA(待开会议&所有会议)
猜你喜欢

How programmers learn open source projects, this article tells you

How to get page data

基于CAP组件实现补偿事务与消息幂等性

AC与瘦AP的WLAN组网实验

Leicester Weekly 304 6135. The longest ring in the picture Inward base ring tree

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

Enterprise WeChat group: robot timing reminder function database configuration

mysql在cmd的登录及数据库与表的基本操作

sqlserver怎么查询一张表中同人员的交叉日期

C language game - minesweeper
随机推荐
SQL Server database schema and objects related knowledge notes
将Servlet项目改为SSM项目
MySQL查询进阶——从函数到表连接的使用你还记得吗
Classify GBase 8 s lock
HoloView -- Tabular Datasets
Shell:条件测试操作
MySQL query advanced - from the use of functions to table joins, do you remember?
Analysis of High Availability Solution Based on MySql, Redis, Mq, ES
notes....
Prime Ring Problem
Redis middleware (from building to refuse pit)
常见的API安全缺陷有哪些?
网络个各种协议
朴素贝叶斯--学习笔记--基本原理及代码实现
笔记。。。。
Microsoft Azure & NVIDIA IoT developers season I | Azure IoT & NVIDIA Jetson development foundation
笔记。。。。
GBase 8s 锁分类
node 格式化时间的传统做法与高级做法(moment)
AC与瘦AP的WLAN组网实验