列式数据库~clickhouse 副本集架构的搭建
clickhouse 搭建副本集
一 原理:
1 依赖ZK,ZK的基础上,ZK存储数据库元数据
2 使用复制表引擎创建复制表,包括ZK路径和副本名,相同ZK路径的表可以相互复制
3 复制表本身拥有数据校验功能,保证数据一致,推荐复制的最佳方案
4 复制最大的速度基本等于机器网卡的最大上限
5 一般创建表的副本名基本都是本机的域名或者IP,这样便于观察和记录
二 注意点:
1 不会同步DDL操作,所以要预先创建表
2 会进行双向全量同步,但是数据写入只会在单点写入,类似mysql的双主单写架构
3 ZK配置文件要写在config文件中,其他写入在/etc/metrika.xml中
4 复制引擎为ReplicatedMergeTree
5 任何情况下,不建议修改ZK的元数据。
三 配置文件 /etc/metrika.xml
<remote_servers incl="clickhouse_remote_servers" >
<remote_servers>
<distable>
<shard>
<!-- Optional. Shard weight when writing data. Default: 1. -->
<weight>1</weight>//权重
<!-- Optional. Whether to write data to just one of the replicas. Default: false (write data to all replicas). -->
<internal_replication>true</internal_replication>//单向写表
<replica>
<host>ip1</host>
<port>9000</port>
</replica>
<replica>
<host>ip2</host>
<port>9001</port>
</replica>
</shard>
</distable>
</remote_servers>
</remote_servers>
<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>
配置文件/etc/config
<zookeeper>
<node index="1">
<host>ZK_IP</host>
<port>2181</port>
</node>
</zookeeper>
<interserver_http_host>本机IP</interserver_http_host>//添加IP绑定
<listen_host>::1</listen_host>
<listen_host>本机IP </listen_host>
这里一定要写在config里.不然不生效.我也是测试之后才发现的。。
四 创建复制引擎表
节点1
CREATE TABLE aa ENGINE = ReplicatedMergeTree('/clickhouse/tables/01-01/aa','IP1') ORDER BY id AS SELECT * FROM mysql('IP:prot', 'db', 'table', 'user', 'password') ;
因为create表操作不会同步
所以
根据/data/clickhouse/metadata/db/table.sql
节点2
CREATE TABLE aa
(
id UInt32,
uid UInt32,
repay_date Date,
repay_amount String,
type Int8,
loan_id String
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/01-01/aaa', 'IP1')//这里的IP1改成IP2
ORDER BY id
SETTINGS index_granularity = 8192;
clickhouse -d db < table.sql
然后观察即可,可以发现速度很快,这也是clickhouse的优势,同步秒级
五 ReplicatedMergeTree 引擎介绍
非同步选项
CREATE,DROP,ATTACH,DETACH and RENAME(针对分区表操作)
同步选项
insert 大部分DDL操作,包括列的操作,delete操作(只针对int类型,补充 全表删除 alter table delete where 1=1)
ALTER支持选项
ADD COLUMN, DROP COLUMN, CLEAR COLUMN, MODIFY COLUMN, MODIFY PRIMARY KEY, ATTACH PARTITION, DETACH PARTITION, DROP PARTITION, ATTACH PART, FETCH PARTITION, FREEZE PARTITION, DELETE WHERE, REPLACE PARTITION, ON
六 监控
select table,zookeeper_path,active_replicas,total_replicas from replicas;
通过对比table和total_replicas的对比,可以发现哪些表没有同步
通过对比active_replicas,total_replicas 可以发现集群服务是否都正常
七 伸缩节点
对于clickhouse副本集的节点伸缩
1 修改配置文件,而定义集群的XML文件是可以热加载的,所以非常方便
2 如果节点宕机,并且可恢复,重启后无需关注,CH会自动同步
3 如果节点宕机,且不可恢复,需要更换新的机器,新增节点,ZK路径毫无疑问需要一致,分片名称务必不能一致,需要更改副本名
八 补充
1 副本集可以扩展成分片集群.需要定义shard标签
2 对于不同步的语句要记得双向操作
3 对于单节点引擎的效率对比,明天将会给出结果
列式数据库~clickhouse 副本集架构的搭建的更多相关文章
- NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署
NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...
- 列式数据库~clickhouse 场景以及安装
一 简介:列式数据库clickhouse的安装与基本操作二 基本介绍:ClickHouse来自俄罗斯,是一款列式数据库三 适用场景: 简单类型的大数据统计四 限制 1 不支持更新操作,不支持事 ...
- 数仓选型必列入考虑的OLAP列式数据库ClickHouse(上)
概述 定义 ClickHouse官网地址 https://clickhouse.com/ 最新版本22.4.5.9 ClickHouse官网文档地址 https://clickhouse.com/do ...
- 列式数据库~clickhouse 底层存储原理
简介:今天介绍列式数据库的一些基本原理 一 数据目录 Data目录 数据存储目录,数据按照part分成多个文件夹,每个文件夹下存储相应数据和对应的元信息文件 Metadata 表定义语句,存储所有表 ...
- 数仓选型必列入考虑的OLAP列式数据库ClickHouse(中)
实战 案例使用 背景 ELK作为老一代日志分析技术栈非常成熟,可以说是最为流行的大数据日志和搜索解决方案:主要设计组件及架构如下: 而新一代日志监控选型如ClickHouse.StarRocks特别是 ...
- 列式数据库~clickhouse日常管理
clickhouse日常管理一 变量相关 1 查看变量 system.setting相关表 2 设置变量 set variables= 请注意这里是session级别,如果想永久生 ...
- 列式数据库~clickhouse问题汇总
一 简介:常见的clickhouse 问题汇总 二 问题系列 1 内存问题 Code: 241. DB::Exception: Received from localhost:9000, : ...
- 列式数据库~clickhouse 数据同步使用
一 简介:进一步了解clickhouse二 数据操 1 单机建表 create TABLE aaa ( id UInt32, uid UInt32, amount Float64, ...
- Hbase与Oracle比较(列式数据库与行式数据库)
Hbase与Oracle比较(列式数据库与行式数据库) 1 主要区别 Hbase适合大量插入同时又有读的情况 Hbase的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道时间. Hbase本质上只 ...
随机推荐
- python----面对对象三大特征2
多态 什么是多态?多态指的是一类事物有多种形态,例如一个动物类,狗和猫都通过继承动物类来得来,这样我们可以将狗.猫称作动物类的另一种形态. 在java中也存在多态,java中的多态是用来解决在一个函数 ...
- startSSL 申请免费的SSL证书
打开网址https://www.startssl.com/?app=12,选择Sign-up注册. 输入个人注册信息 需注意以下几点:(1)地址必须详细,否则你会收到这样的邮件: Please pro ...
- BZOJ5286: [Hnoi2018]转盘 (线段树)
题意 给你绕成一圈的物品共 \(n\) 个 , 然后从其中一个开始选 , 每次有两种操作 , 一是继续选择当前物品 , 二是选择这个后一个物品 . 选择后一个物品要求当前的时刻大于后一个的 \(T_i ...
- 【BZOJ4820】[SDOI2017]硬币游戏(高斯消元)
[BZOJ4820][SDOI2017]硬币游戏(高斯消元) 题面 BZOJ 洛谷 题解 第一眼的感觉就是构\(AC\)自动机之后直接高斯消元算概率,这样子似乎就是\(BZOJ1444\)了.然而点数 ...
- 【BZOJ2003】[HNOI2010]矩阵(搜索)
[BZOJ2003][HNOI2010]矩阵(搜索) 题面 懒得粘了,不难找吧. 题解 看的学长写的题解,也懒得写了 大概是这样的. 不难发现只需要确定第一行和第一列就能确定答案,而确定第一行之后每确 ...
- 深入理解Adaboost算法
理解算法确实是欲速则不达,唯有一步一步慢慢看懂,然后突然觉得写的真的太好了,那才是真的有所理解了. Adaboost的两点关键点: 1. 如何根据弱模型的表现更新训练集的权重: 2. 如何根据弱模型的 ...
- Spring Cloud(四) --- config
Spring Cloud Config 随着线上项目变的日益庞大,每个项目都散落着各种配置文件,如果采用分布式的开发模式,需要的配置文件随着服务增加而不断增多.某一个基础服务信息变更,都会引起一系列的 ...
- (转)Java程序员的面试经历和题库
背景:最近我在找工作,前期就像打了鸡血的一样,隔一段时间没有面试,就又松懈了下来,看到别人写的面经,感觉就像打脸一般,以后要多多总结前人的经验,时刻保持压力状态才是. 作者:nuaazhaofeng2 ...
- 前端基础之html(一)
https://www.cnblogs.com/haiyan123/p/7516060.html 一.初始html 1.web服务本质 import socket sock=socket.socket ...
- 斯坦福大学公开课机器学习:Neural network-model representation(神经网络模型及神经单元的理解)
神经网络是在模仿大脑中的神经元或者神经网络时发明的.因此,要解释如何表示模型假设,我们先来看单个神经元在大脑中是什么样的.如下图,我们的大脑中充满了神经元,神经元是大脑中的细胞,其中有两点值得我们注意 ...