ClickHouse集群的离线安装
Posted 芋辕-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ClickHouse集群的离线安装相关的知识,希望对你有一定的参考价值。
目录
1 安装总体概况
2 离线安装相应的rpm文件(三台机器都需要)
3 修改配置文件
4 启动ClickServer
5 配置集群
1.安装总体概况
功能说明 | 主机IP | 环境配置 | 安装 |
节点1 | 192.168.56.101 | 关闭防火墙, 时钟同步, host映射 | Jdk Zookeeper ClickHouse |
节点2 | 192.168.56.102 | 关闭防火墙, 时钟同步, host映射 | Jdk Zookeeper ClickHouse |
节点3 | 192.168.56.103 | 关闭防火墙, 时钟同步, host映射 | Jdk Zookeeper ClickHouse |
2. 离线安装相应的rpm文件(三台机器都需要)
ClickHouse的安装主要依赖于zookeeper,jdk,所以安装之前记得配置好zookeeper,jdk
还有就是可以先安装好libtool和unixODBC两个rpm包,便于后续连接操作
有需要的小伙伴可以连接自取
链接:https://pan.baidu.com/s/100_AK3qS19y9pdQ4K--uxA (clickhouse和zookeeper)
提取码:23ej
链接:https://pan.baidu.com/s/1V4qawFI2rFGc13hFFx0seA (jdk)
提取码:5qod
rpm -ivh *.rpm
jdk和zookeeper的安装这里就不再赘述。
3 修改配置文件
按照好相应的clickhouse之后,需要对配置文件进行修改,执行以下命令
vim /etc/clickhouse-server/config.xml
把<listen_host>::</listen_host>的注释打开,这样的话才能让ClickHouse被除本机以外的服务器访问(同时在另外两台机器上做同样的修改)
如果想修改数据和日志文件的存储位置,可以修改以下配置
数据文件路径:<path>/var/lib/clickhouse/</path>
日志文件路径:<log>/var/log/clickhouse-server/clickhouse-server.log</log>
4 启动ClickServer
启动clickhouse
systemctl start clickhouse-server
三台机器关闭开机自启
sudo systemctl disable clickhouse-server
使用client连接server
clickhouse-client -m
能够进去sql输入页面则证明单机clickhouse启动成功
5 配置集群
clickhouse集群的主要作用有两个
(1)创建副本
(2)实现分片集群(三个分片,每个分片只有一个副本(即不设副本))
这里我们只讲述如何配置分片集群的相应文件(副本文件的配置,其实就是后面配置<replica>进行重新设置)
步骤
(1)首先是在config.xml配置文件进行修改,使其关联到外面的metrika.xml文件(文件自己创建)
(2)配置metrika.xml文件的内容
<yandex>
<clickhouse_remote_servers>
<gmall_cluster> <!-- 集群名称-->
<shard> <!--集群的第一个分片-->
<internal_replication>true</internal_replication>
<!--该分片的第一个副本-->
<replica>
<host>192.168.56.101</host>
<port>9000</port>
</replica>
</shard>
<shard> <!--集群的第二个分片-->
<internal_replication>true</internal_replication>
<replica> <!--该分片的第一个副本-->
<host>192.168.56.102</host>
<port>9000</port>
</replica>
</shard>
<shard> <!--集群的第三个分片-->
<internal_replication>true</internal_replication>
<replica> <!--该分片的第一个副本-->
<host>192.168.56.103</host>
<port>9000</port>
</replica>
</shard>
</gmall_cluster>
</clickhouse_remote_servers>
<zookeeper-servers>
<node index="1">
<host>hadoop101</host>
<port>2181</port>
</node>
<node index="2">
<host>hadoop102</host>
<port>2181</port>
</node>
<node index="3">
<host>hadoop103</host>
<port>2181</port>
</node>
</zookeeper-servers>
<macros>
<shard>01</shard> <!--不同机器放的分片数不一样-->
<replica>rep_1_1</replica> <!--不同机器放的副本数不一样-->
</macros>
</yandex>
如果是想要节点2设置一个分片的话,则macros下的配置文件需要修改为
<!-- 一些扩展说明 -->
<!-- 如果是想要节点2设置一个分片的话,则macros下的配置文件需要修改为-->
<macros>
<shard>02</shard> <!--不同机器放的分片数不一样-->
<replica>rep_2_1</replica> <!--不同机器放的副本数不一样-->
</macros>
如果是想要节点3设置一个分片的话,则macros下的配置文件需要修改为
<!-- 一些扩展说明 -->
<!-- 如果是想要节点2设置一个分片的话,则macros下的配置文件需要修改为-->
<macros>
<shard>03</shard> <!--不同机器放的分片数不一样-->
<replica>rep_3_1</replica> <!--不同机器放的副本数不一样-->
</macros>
如果想设置多副本的情况,例如三台机器设置两个分片,只有第一个分片有副本
配置文件可以参考下面:
<?xml version="1.0"?>
<yandex>
<clickhouse_remote_servers>
<gmall_cluster> <!-- 集群名称-->
<shard> <!--集群的第一个分片-->
<internal_replication>true</internal_replication>
<replica> <!--该分片的第一个副本-->
<host>hadoop202</host>
<port>9000</port>
</replica>
<replica> <!--该分片的第二个副本-->
<host>hadoop203</host>
<port>9000</port>
</replica>
</shard>
<shard> <!--集群的第二个分片-->
<internal_replication>true</internal_replication>
<replica> <!--该分片的第一个副本-->
<host>hadoop204</host>
<port>9000</port>
</replica>
</shard>
</gmall_cluster>
</clickhouse_remote_servers>
<zookeeper-servers>
<node index="1">
<host>hadoop202</host>
<port>2181</port>
</node>
<node index="2">
<host>hadoop203</host>
<port>2181</port>
</node>
<node index="3">
<host>hadoop204</host>
<port>2181</port>
</node>
</zookeeper-servers>
<macros>
<shard>01</shard> <!--不同机器放的分片数不一样-->
<replica>rep_1_1</replica> <!--不同机器放的副本数不一样-->
</macros>
</yandex>
上面的配置项macros在不同机器也要记得修改
(3)建表操作
需要注意:
会自动同步到节点2和节点3上
集群名字要和配置文件中的一致
分片和副本名称从配置文件的宏定义中获取
create table st_order_mt on cluster gmall_cluster (
id UInt32,
sku_id String,
total_amount Decimal(16,2),
create_time Datetime
) engine =ReplicatedMergeTree('/clickhouse/tables/shard/st_order_mt_0105','replica')
partition by toYYYYMMDD(create_time)
primary key (id)
order by (id,sku_id);
接着创建Distribute分布式表
create table st_order_mt_all on cluster gmall_cluster
(
id UInt32,
sku_id String,
total_amount Decimal(16,2),
create_time Datetime
)engine = Distributed(gmall_cluster,default, st_order_mt,hiveHash(sku_id));
参数含义
Distributed(集群名称,库名,本地表名,分片键)
分片键必须是整型数字,所以用HiveHash函数进行转化,也可以用rand()
!!!可以切换到不同节点中,查看“是否”创建表成功,若创建成功,则证明配置文件没问题.集群搭建成功
以上是关于ClickHouse集群的离线安装的主要内容,如果未能解决你的问题,请参考以下文章
Openshift 4.4 静态 IP 离线安装系列:初始安装
我在哪里可以下载 Visual Studio 2015 Express 的离线安装? [关闭]