Clickhouse centos7集群搭建

Clickhouse centos7集群搭建

1 准备

准备阶段操作略

  1. Zookeeper集群:hadoop101,hadoop102,hadoop103(一主一从一observer)
    Zookeeper集群搭建

  2. 三个节点centos7:hadoop101,hadoop102,hadoop103分别安装clickhouse
    在这里插入图片描述

2 配置三节点版本集群及副本(2个分片,只有一个分片有副本)

在这里插入图片描述

2.1 hadoop101 配置

  1. /etc/clickhouse-server/config.d/目录下创建metrika-shard.xml
    添加以下配置
<?xml version="1.0"?>
	<yandex>
		<remote_servers>
			<!-- 集群名称--> 
			<gmall_cluster> 
				 <!--集群的第一个分片-->
				<shard> 
					<internal_replication>true</internal_replication>
					<!--该分片的第一个副本-->
					<replica> 
						<host>hadoop101</host>
						<port>9000</port>
					</replica>
					<!--该分片的第二个副本-->
					<replica> 
						<host>hadoop102</host>
						<port>9000</port>
						</replica>
				</shard>
				<!--集群的第二个分片-->
				<shard> 
					<internal_replication>true</internal_replication>
					<!--该分片的第一个副本-->
					<replica> 
						<host>hadoop103</host>
						<port>9000</port>
					</replica>
				</shard>
			</gmall_cluster>
		</remote_servers>
	<!-- zookeeper集群连接配置 -->
	<zookeeper-servers>
		<node index="1">
			<host>hadoop101</host>
			<port>2181</port>
		</node>
		<node index="2">
			<host>hadoop102</host>
			<port>2181</port>
		</node>
	</zookeeper-servers>
	<!-- 参数配置,创建表参数可动态引用 -->
	<macros>
		<!--不同机器放的分片数不一样-->
		<shard>01</shard> 
		<!--不同机器放的副本数不一样 rep_分片索引_副本-->
		<replica>rep_1_1</replica> 
	</macros>
</yandex>
  1. 将metrika-shard.xml引用到config.xml配置文件中
<zookeeper incl="zookeeper-servers" optional="true" />
<include_from>/etc/clickhouse-server/config.d/metrika-shard.xml</include_from>

2.2 hadoop102 配置

  1. /etc/clickhouse-server/config.d/目录下创建metrika-shard.xml
    添加以下配置
<?xml version="1.0"?>
	<yandex>
		<remote_servers>
			<!-- 集群名称--> 
			<gmall_cluster> 
				 <!--集群的第一个分片-->
				<shard> 
					<internal_replication>true</internal_replication>
					<!--该分片的第一个副本-->
					<replica> 
						<host>hadoop101</host>
						<port>9000</port>
					</replica>
					<!--该分片的第二个副本-->
					<replica> 
						<host>hadoop102</host>
						<port>9000</port>
						</replica>
				</shard>
				<!--集群的第二个分片-->
				<shard> 
					<internal_replication>true</internal_replication>
					<!--该分片的第一个副本-->
					<replica> 
						<host>hadoop103</host>
						<port>9000</port>
					</replica>
				</shard>
			</gmall_cluster>
		</remote_servers>
	<!-- zookeeper集群连接配置 -->
	<zookeeper-servers>
		<node index="1">
			<host>hadoop101</host>
			<port>2181</port>
		</node>
		<node index="2">
			<host>hadoop102</host>
			<port>2181</port>
		</node>
	</zookeeper-servers>
	<!-- 参数配置,创建表参数可动态引用 -->
	<macros>
		<!--不同机器放的分片数不一样-->
		<shard>01</shard> 
		<!--不同机器放的副本数不一样 rep_分片索引_副本-->
		<replica>rep_1_2</replica> 
	</macros>
</yandex>
  1. 将metrika-shard.xml引用到config.xml配置文件中
<zookeeper incl="zookeeper-servers" optional="true" />
<include_from>/etc/clickhouse-server/config.d/metrika-shard.xml</include_from>

2.3 hadoop103 配置

  1. /etc/clickhouse-server/config.d/目录下创建metrika-shard.xml
    添加以下配置
<?xml version="1.0"?>
	<yandex>
		<remote_servers>
			<!-- 集群名称--> 
			<gmall_cluster> 
				 <!--集群的第一个分片-->
				<shard> 
					<internal_replication>true</internal_replication>
					<!--该分片的第一个副本-->
					<replica> 
						<host>hadoop101</host>
						<port>9000</port>
					</replica>
					<!--该分片的第二个副本-->
					<replica> 
						<host>hadoop102</host>
						<port>9000</port>
						</replica>
				</shard>
				<!--集群的第二个分片-->
				<shard> 
					<internal_replication>true</internal_replication>
					<!--该分片的第一个副本-->
					<replica> 
						<host>hadoop103</host>
						<port>9000</port>
					</replica>
				</shard>
			</gmall_cluster>
		</remote_servers>
	<!-- zookeeper集群连接配置 -->
	<zookeeper-servers>
		<node index="1">
			<host>hadoop101</host>
			<port>2181</port>
		</node>
		<node index="2">
			<host>hadoop102</host>
			<port>2181</port>
		</node>
	</zookeeper-servers>
	<!-- 参数配置,创建表参数可动态引用 -->
	<macros>
		<!--不同机器放的分片数不一样-->
		<shard>02</shard> 
		<!--不同机器放的副本数不一样 rep_分片索引_副本-->
		<replica>rep_2_1</replica> 
	</macros>
</yandex>
  1. 将metrika-shard.xml引用到config.xml配置文件中
<zookeeper incl="zookeeper-servers" optional="true" />
<include_from>/etc/clickhouse-server/config.d/metrika-shard.xml</include_from>

2.4 检查启动关闭

  1. 检查 /etc/clickhouse-server目录下的文件权限是否均归属clickhouse账户(确保是clickhouse,否则启动会失败)
# 修改
chown -R clickhouse:clickhouse /etc/clickhouse-server
  1. 逐台启动
# 启动
systemctl start clickhouse-server
# 关闭
systemctl stopclickhouse-server
# 环境指令
clickhouse start/stop/restart

2.5 查看集群是否搭建成功

# 连接clickhouse
[root@hadoop101 clickhouse-server]# clickhouse-client -m
ClickHouse client version 21.8.5.7 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 21.8.5 revision 54449.

hadoop101 :) select * from system.clusters;

SELECT *
FROM system.clusters

Query id: 44bec642-9bd9-49b4-9658-da3314528a77

┌─cluster──────────────────────────────────────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name─┬─host_address───┬─port─┬─is_local─┬─user────┬─default_database─┬─errors_count─┬─slowdowns_count─┬─estimated_recovery_time─┐
│ gmall_cluster                                │         111 │ hadoop101 │ 192.168.10.101 │ 90001 │ default │                  │            000 │
│ gmall_cluster                                │         112 │ hadoop102 │ 192.168.10.102 │ 90000 │ default │                  │            000 │
│ gmall_cluster                                │         211 │ hadoop103 │ 192.168.10.103 │ 90000 │ default │                  │            000 │
│ test_cluster_two_shards                      │         111127.0.0.1 │ 127.0.0.1      │ 90001 │ default │                  │            000 │
│ test_cluster_two_shards                      │         211127.0.0.2 │ 127.0.0.2      │ 90000 │ default │                  │            000 │
│ test_cluster_two_shards_internal_replication │         111127.0.0.1 │ 127.0.0.1      │ 90001 │ default │                  │            000 │
│ test_cluster_two_shards_internal_replication │         211127.0.0.2 │ 127.0.0.2      │ 90000 │ default │                  │            000 │
│ test_cluster_two_shards_localhost            │         111 │ localhost │ ::1            │ 90001 │ default │                  │            000 │
│ test_cluster_two_shards_localhost            │         211 │ localhost │ ::1            │ 90001 │ default │                  │            000 │
│ test_shard_localhost                         │         111 │ localhost │ ::1            │ 90001 │ default │                  │            000 │
│ test_shard_localhost_secure                  │         111 │ localhost │ ::1            │ 94400 │ default │                  │            000 │
│ test_unavailable_shard                       │         111 │ localhost │ ::1            │ 90001 │ default │                  │            000 │
│ test_unavailable_shard                       │         211 │ localhost │ ::1            │    10 │ default │                  │            000 │
└──────────────────────────────────────────────┴───────────┴──────────────┴─────────────┴───────────┴────────────────┴──────┴──────────┴─────────┴──────────────────┴──────────────┴─────────────────┴─────────────────────────┘

13 rows in set. Elapsed: 0.015 sec. 

3 创建集群分布式表

3.1 创建基础表

create table develop.t_order_mt on cluster gmall_cluster (
   id UInt32,
   sku_id String,
   total_amount Decimal(16,2),
   create_time Datetime
) engine = ReplicatedMergeTree('/clickhouse/tables/{shard}/t_order_mt','{replica}')
 partition by toYYYYMMDD(create_time)
 primary key (id)
 order by (id,sku_id);

3.2 创建分布式表

  1. Distributed
create table develop.t_order_mt_all on cluster gmall_cluster (
 id UInt32,
 sku_id String,
 total_amount Decimal(16,2),
 create_time Datetime
) engine = Distributed(gmall_cluster,develop, t_order_mt,hiveHash(sku_id));

Distributed 参数含义:

  • Distributed(集群名称,库名,本地表名,分片键)
  • 分片键必须是整型数字,所以用 hiveHash 函数转换,也可以 rand()
  1. 造数
insert into develop.t_order_mt_all values
(201,'sku_001',1000.00,'2020-06-01 12:00:00') ,
(202,'sku_002',2000.00,'2020-06-01 12:00:00'),
(203,'sku_004',2500.00,'2020-06-01 12:00:00'),
(204,'sku_002',2000.00,'2020-06-01 12:00:00'),
(205,'sku_003',600.00,'2020-06-02 12:00:00');

3.3 验证

  1. hadoop101
    在这里插入图片描述

  2. hadoop102
    在这里插入图片描述

  3. hadop103
    在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值