【ClickHouse】副本、分片集群 (六)

副本
副本的目的主要是保障数据的高可用性,即使一台ClickHouse节点宕机,那么也可以从其他服务器获得相同的数据。

https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/

副本写入流程
写入流程如图-18所示:
在这里插入图片描述

图-18 写入流程
配置步骤
1)启动zookeeper集群。
2)在hadoop101的/etc/clickhouse-server/config.d目录下创建一个名为metrika.xml的配置文件,内容如下:
注:也可以不创建外部文件,直接在config.xml中指定。

<?xml version="1.0"?>
<yandex>
<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>
</yandex>

3)同步到hadoop102和hadoop103上。

xsync /etc/clickhouse-server/config.d/metrika.xml	

4)在hadoop101的/etc/clickhouse-server/config.xml中增加。

<zookeeper incl="zookeeper-servers" optional="true" />
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>

在这里插入图片描述

图-19 配置文件
5)同步到hadoop102和hadoop103上。

xsync /etc/clickhouse-server/config.xml

6)分别在hadoop102和hadoop103上启动ClickHouse服务。

clickhouse restart

注意:因为修改了配置文件,如果以前启动了服务需要重启。
注意:我们演示副本操作只需要在hadoop101和hadoop102两台服务器即可,上面的操作,我们hadoop103可以你不用同步,我们这里为了保证集群中资源的一致性,做了同步。
7)在hadoop101和hadoop102上分别建表。
副本只能同步数据,不能同步表结构,所以我们需要在每台机器上自己手动建表。
hadoop101:

create table t_order_re ( id UInt32,
sku_id String,
total_amount Decimal(16,2), 
create_time Datetime
) engine =ReplicatedMergeTree('/clickhouse/table/01/t_order','rep_001') partition by toYYYYMMDD(create_time)
primary key (id) order by (id,sku_id);

hadoop102:

create table t_order_re ( id UInt32,
sku_id String,
total_amount Decimal(16,2), 
create_time Datetime
) engine =ReplicatedMergeTree('/clickhouse/table/01/t_order','rep_002') partition by toYYYYMMDD(create_time)
primary key (id) order by (id,sku_id);

参数解释
ReplicatedMergeTree中,第一个参数是分片的zk_path一般按照:/clickhouse/table/{shard}/{table_name}的格式写,如果只有一个分片就写 01 即可。
第二个参数是副本名称,相同的分片副本名称不能相同。
在hadoop101上执行insert语句,结果如图-20所示:

insert into t_order_re values (101,'sku_001',1000.00,'2020-06-01 12:00:00'),
(102,'sku_002',2000.00,'2020-06-01 12:00:00'),
(103,'sku_004',2500.00,'2020-06-01 12:00:00'),
(104,'sku_002',2000.00,'2020-06-01 12:00:00'),
(105,'sku_003',600.00,'2020-06-02 12:00:00');

在这里插入图片描述
图-20 插入数据
在hadoop102上执行select,可以查询出结果,如图-21所示,说明副本配置正确。

图-21 执行结果
分片集群
副本虽然能够提高数据的可用性,降低丢失风险,但是每台服务器实际上必须容纳全量数据,对数据的横向扩容没有解决。
要解决数据水平切分的问题,需要引入分片的概念。通过分片把一份完整的数据进行切分,不同的分片分布到不同的节点上,再通过Distributed表引擎把数据拼接起来一同使用。
Distributed表引擎本身不存储数据,有点类似于 MyCat 之于 MySql,成为一种中间件, 通过分布式逻辑表来写入、分发、路由来操作多台节点不同分片的分布式数据。
注意:ClickHouse的集群是表级别的,实际企业中,大部分做了高可用,但是没有用分片,避免降低查询性能以及操作集群的复杂性。
集群写入流程(3 分片 2 副本共 6 个节点)
写入流程如图-22所示:
在这里插入图片描述

图-22 写入流程
集群读取流程(3 分片 2 副本共 6 个节点)
读取流程如图-23所示:
在这里插入图片描述

图-23 读取流程
集群搭建
配置的位置可以在之前的/etc/clickhouse-server/config.d/metrika.xml,内容如下。
注:也可以不创建外部文件,直接在config.xml的<remote_servers>中指定。
hadoop101配置如下:

<yandex>...省略...<listen_host>::</listen_host><remote_servers><perftest_3shards_1replicas><shard><replica><host>hadoop101</host><port>9000</port></replica></shard><shard><replica><host>hadoop102</host><port>9000</port></replica></shard><shard><replica><host>hadoop103</host><port>9000</port></replica></shard></perftest_3shards_1replicas></remote_servers><!-- zookeeper相关配置 --><zookeeper-servers><node><host>hadoop101</host><port>2181</port></node><node><host>hadoop102</host><port>2181</port></node><node><host>hadoop103</host><port>2181</port></node></zookeeper-servers><!-- 复制标识的配置,也称为宏配置,这里唯一标识一个副本名称,每个实例都要配置并且都是唯一的 --><macros><shard>01</shard><replica>01</replica></macros>  ...省略...    
</yandex>

hadoop102配置如下:

<yandex>...省略...<listen_host>::</listen_host><remote_servers><perftest_3shards_1replicas><shard><replica><host>hadoop101</host><port>9000</port></replica></shard><shard><replica><host>hadoop102</host><port>9000</port></replica></shard><shard><replica><host>hadoop103</host><port>9000</port></replica></shard></perftest_3shards_1replicas></remote_servers><!-- zookeeper相关配置 --><zookeeper-servers><node><host>hadoop101</host><port>2181</port></node><node><host>hadoop102</host><port>2181</port></node><node><host>hadoop103</host><port>2181</port></node></zookeeper-servers><!-- 复制标识的配置,也称为宏配置,这里唯一标识一个副本名称,每个实例都要配置并且都是唯一的 --><macros><shard>02</shard><replica>01</replica></macros>  ...省略...    
</yandex>

hadoop103配置如下:

    <remote_servers><perftest_3shards_1replicas><shard><replica><host>hadoop101</host><port>9000</port></replica></shard><shard><replica><host>hadoop102</host><port>9000</port></replica></shard><shard><replica><host>hadoop103</host><port>9000</port></replica></shard></perftest_3shards_1replicas></remote_servers><!-- zookeeper相关配置 -->
<zookeeper-servers><node><host>hadoop101</host><port>2181</port></node><node><host>hadoop102</host><port>2181</port></node><node><host>hadoop103</host><port>2181</port></node></zookeeper-servers><!-- 复制标识的配置,也称为宏配置,这里唯一标识一个副本名称,每个实例都要配置并且都是唯一的 --><macros><shard>03</shard><replica>01</replica></macros>  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/32098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CATIA_DELMIA_V5R2019安装包下载及安装教程破解

以下为V5-6R2019安装说明 1.将两卷安装文件解压到同一目录内&#xff0c;互相覆盖即可 &#xff08;按用户需要下载 CATIA 或者DELMIA&#xff09; 以上为 CATIA 的安装包 以上为 DELMIA 的安装包 两者合并到一起&#xff0c;同一目录 2.解压后运行setup.exe 如遇到报错&…

数据集标注研究

主要研究数据集标注存储文件的数据存储格式 目录 0.简介1.coco128-seg数据格式1.1 分割标注格式2.YOLO格式2.1 YOLO目标识别标签2.2 yolov5-seg分割标签2.TT100K数据集标注2.1 TT100K数据集标注文件解析0.简介 1.coco128-seg数据格式 1.1 分割标注格式 如coco128-seg数据集 …

【一步一步了解Java系列】:认识异常类

看到这句话的时候证明&#xff1a;此刻你我都在努力 加油陌生人 个人主页&#xff1a;Gu Gu Study专栏&#xff1a;一步一步了解Java 喜欢的一句话&#xff1a; 常常会回顾努力的自己&#xff0c;所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者&#xff1a;小闭…

论文阅读03(基于人类偏好微调语言模型)

1.主题 基于人类偏好微调语言模型&#xff08;Fine-Tuning Language Models from Human Preferences&#xff09; 出处&#xff1a; Fine-Tuning Language Models from Human Preferences、 2.摘要 奖励学习使得强化学习&#xff08;RL&#xff09;可以应用于那些通过人类判断…

计算机网络(概述)

该笔记为湖科大计算机网络相关笔记、教材参考计算机网络第六版 湖科大计算机网络 计算机网络概述 因特网概述 Internet和internet的区别 internet&#xff1a;只要是计算机与计算机连接&#xff0c;形成了网络&#xff0c;就可以叫internet Internet&#xff1a;泛指全世界的…

Excel 导入实例

在上一节的基础上&#xff0c;本文演示下如何导入excel数据。 Excel导入操作指导 继承ocean-easyexcel SDK&#xff0c;上一节打包生成 <dependency><groupId>com.angel.ocean</groupId><artifactId>ocean-easyexcel</artifactId><version…

晶谷电子器件烧结封装介质材料 绝缘用晶谷低温封接环保玻璃粉 耐压高

电子器件烧结封装介质材料是用于保护和封装电子器件的关键材料。 常见的电子器件烧结封装介质材料包括以下几种&#xff1a; 1. 陶瓷材料&#xff1a;具有良好的绝缘性能、耐高温性能和机械强度。 2. 高分子材料&#xff1a;如环氧树脂等&#xff0c;具有良好的柔韧性和耐湿…

k8s离线部署nginx

1. 拉取nginx离线包到本地 sudo docker save nginx:latest -o nginx.tar 2. 导入nginx image到k8s命名空间中 sudo ctr -n k8s.io images import nginx.tar 3. 编辑nginx.yaml apiVersion: apps/v1 kind: Deployment metadata:name: nginx-deployment spec:selector:match…

【C语言】解决C语言报错:Array Index Out of Bounds

文章目录 简介什么是Array Index Out of BoundsArray Index Out of Bounds的常见原因如何检测和调试Array Index Out of Bounds解决Array Index Out of Bounds的最佳实践详细实例解析示例1&#xff1a;访问负索引示例2&#xff1a;访问超出上限的索引示例3&#xff1a;循环边界…

ArcGIS实现不同地块分类与面积汇总

​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 我们要做一个不同地块面积汇总&#xff01; 你有一批地块&#xff0c;不同面积&#xff0c;我们需…

Redis单例部署

目录 1. 概述2. 参考3. 环境4. 部署4.1 操作系统4.1.1 修改系统参数4.1.2 关闭透明大页内存4.1.3 修改系统限制 4.2 安装Redis4.2.1 下载Redis4.2.2 创建redis账号4.2.3 添加Redis环境变量4.2.4 创建Redis使用目录4.2.5 安装Redis4.2.6 手动修改配置文件&#xff08;**可跳过&a…

javaSE字符串学习笔记

API和API帮助文档 API API(Application Programming Interface)&#xff1a;应用程序编程接口简单理解&#xff1a;API酒啊别人已经写好的东西&#xff0c;我们不需要自己编写&#xff0c;直接使用即可。 API这个术语在编程圈中非常常见.我第一次接触API这个词语是在大一下。老…

【办公技巧】如何编辑带有限制编辑密码的PDF文件?

PDF文件打开之后发现设置了限制编辑&#xff0c;功能栏中的编辑按钮都是灰色的&#xff0c;导致PDF文件里的内容无法编辑。那么带有限制编辑的PDF文件&#xff0c;如何编辑&#xff1f;今天分享两个方法。 方法一&#xff1a; 我们可以将PDF文件转换成其他格式&#xff0c;有…

简单理解爬虫的概念

简单来说&#xff1a; 爬虫&#xff0c;即网络蜘蛛&#xff0c;是伪装成客户端与服务器进行数据交互的程序。 代码 代码教程分享&#xff08;无偿&#xff09;&#xff1a; 思路 1.获取网页的源码 pythondef askURL(url):head{"User-Agent":"Mozilla/5.0 (L…

SQL综合查询-学校教务管理系统数据库

一、一个完整的数据查询语句的格式 SELECT 【ALL|DISTINCT】<目标列表达式>【&#xff0c;<目标列表达式2>&#xff0c;...】 FROM <表名或视图名1>【&#xff0c;<表名或视图名2>&#xff0c;...】 【WHERE <元组选择条件表达式>】 【GROUP…

利用streamlit开发大模型API调用对话网页应用

利用streamlit开发大模型API调用对话网页应用 介绍 Streamlit是一个用于构建数据应用的开源框架&#xff0c;其简单易用的界面使得数据科学家和开发人员能够快速创建交互式应用。而OpenAI API则提供了强大的语言模型&#xff0c;可以生成自然语言响应。将这两者结合起来&…

redis-基础篇(2)

黑马redis-基础篇笔记 3. redis的java客户端-Jedis 在Redis官网中提供了各种语言的客户端&#xff0c;地址&#xff1a;https://redis.io/docs/clients/ 标记为❤的就是推荐使用的java客户端&#xff0c;包括&#xff1a; Jedis和Lettuce&#xff1a;这两个主要是提供了Redi…

# 消息中间件 RocketMQ 高级功能和源码分析(十)

消息中间件 RocketMQ 高级功能和源码分析&#xff08;十&#xff09; 一、消息中间件 RocketMQ 源码分析&#xff1a; 消息消费概述 1、集群模式和广播模式 消息消费以组的模式开展&#xff0c;一个消费组内可以包含多个消费者&#xff0c;每一个消费者组可订阅多个主题&…

PointCloudLib 点云边缘点提取 C++版本

0.实现效果 1.算法原理 PCL(Point Cloud Library)中获取点云边界的算法主要基于点云数据的几何特征和法向量信息。以下是对该算法的详细解释,按照清晰的格式进行归纳: 算法概述 PCL中的点云边界提取算法主要用于从3D点云数据中识别并提取出位于物体边界上的点。这些边界…

邀请函 | 人大金仓邀您相聚第十三届中国国际国防电子展览会

盛夏六月 备受瞩目的 第十三届中国国际国防电子展览会 将于6月26日至28日 在北京国家会议中心盛大举办 作为数据库领域国家队 人大金仓 将携系列行业解决方案 和创新实践成果亮相 期待您莅临指导 ↓↓↓↓↓↓ CIDEX 2024 中国国际国防电子展览会&#xff08;简称CIDEX&#xf…