docker安装clickhouse副本集群
docker安装clickhouse副本集群
- 1、clickhouse副本集群搭建
- 1.1、docker安装zookeeper集群
- 1.1.1、zookeeper第一个节点安装
- 1.1.2、zookeeper第二个节点安装
- 1.1.3、zookeeper第三个节点安装
- 1.1.4、zookeeper客户端命令
- 2、Clickhouse副本集群搭建
- 2.1、clickhouse搭建
- 2.2、验证集群
- 3、Clickhouse分片集群搭建
1、clickhouse副本集群搭建
1、Clickhouse的集群搭建依赖zookeeper。
2、官方建议,不要在clickhouse所在的服务器上运行zookeeper。因为zookeeper对数据延迟非常敏感,而clickhouse可能会占用所有可用的系统资源。咱们是资源缺少,zookeeper和clickhouse安装到一台机器了。
1、如果数据量不大,并且想要高可用,就使用副本集群,别搭建高可用集群,官网给出的建议是,30多亿条数据仅用200G磁盘,单机查询CPU性能是很高的。
2、Clickhouse副本集群目的是保证高可用,相当于备份服务器,访问哪个副本都可以增删改查,副本之间是没主从关系的。
3、clickhouse的副本是表级别的,根据表引擎来的。
下面案例是把clickhouse和zookeeper安装在一台机器上。
IP | 服务 |
---|---|
192.168.52.7 | Zookeeper、Clickhouse |
192.168.52.8 | Zookeeper 、Clickhouse |
192.168.52.9 | Zookeeper 、Clickhouse |
1.1、docker安装zookeeper集群
1.1.1、zookeeper第一个节点安装
docker pull wurstmeister/zookeeper
docker run --restart=always \
--name zk01 -d \
-p 2181:2181 -p 2888:2888 -p 3888:3888 \
wurstmeister/zookeeper
进入容器
docker exec -it zk01 bash
编辑配置文件,在文件末尾添加下面三行(容器内操作)
vi /opt/zookeeper-3.4.13/conf/zoo.cfg
server.1=0.0.0.0:2888:3888
server.2=192.168.52.8:2888:3888
server.3=192.168.52.9:2888:3888
创建myid文件,并填写内容(容器内操作)
echo 1 > /opt/zookeeper-3.4.13/data/myid
重启zk
docker restart zk01
查看zk状态(容器内操作)
./bin/zkServer.sh status
root:/opt/zookeeper-3.4.13# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower
1.1.2、zookeeper第二个节点安装
docker pull wurstmeister/zookeeper
docker run --restart=always \
--name zk02 -d \
-p 2181:2181 -p 2888:2888 -p 3888:3888 \
wurstmeister/zookeeper
进入容器
docker exec -it zk02 bash
编辑配置文件,在文件末尾添加下面三行(容器内操作)
vi /opt/zookeeper-3.4.13/conf/zoo.cfg
server.1=192.168.52.7:2888:3888
server.2=0.0.0.0:2888:3888
server.3=192.168.52.9:2888:3888
创建myid文件,并填写内容(容器内操作)
echo 2 > /opt/zookeeper-3.4.13/data/myid
重启zookeeper
docker restart zk02
查看zk状态(容器内操作)
./bin/zkServer.sh status
root:/opt/zookeeper-3.4.13# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower
1.1.3、zookeeper第三个节点安装
docker pull wurstmeister/zookeeper
docker run --restart=always \
--name zk03 -d \
-p 2181:2181 -p 2888:2888 -p 3888:3888 \
wurstmeister/zookeeper
进入容器
docker exec -it zk03 bash
编辑配置文件,在文件末尾添加下面三行(容器内操作)
vi /opt/zookeeper-3.4.13/conf/zoo.cfg
server.1=192.168.52.7:2888:3888
server.2=192.168.52.8:2888:3888
server.3=0.0.0.0:2888:3888
创建myid文件,并填写内容(容器内操作)
echo 3 > /opt/zookeeper-3.4.13/data/myid
重启zk
docker restart zk03
查看zk状态(容器内操作)
./bin/zkServer.sh status
root:/opt/zookeeper-3.4.13# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: leader
从上面查看zookeeper状态来看,集群是有两个角色的,分为leader和follower,如果是单机版,状态则是standalone
1.1.4、zookeeper客户端命令
进入操作客户端
./zkCli.sh -server 127.0.0.1:2181
#查看根目录
ls /
#递归删除
rmr /clickhouse
#删除单个,如果有子节点则不能删除
delete /clickhouse
2、Clickhouse副本集群搭建
2.1、clickhouse搭建
参考本人写的单机版clicihouse搭建,三台机器都按照单机版搭建好,点击进入单机版搭建教程。
单机版clicihouse搭建后,需要做下面操作(三个节点都做 )
编辑配置文件config.xml
vi /data/clickhouse/clickhouse-server/config.xml
指定zookeeper地址
<zookeeper><node><host>192.168.52.7</host><port>2181</port></node><node><host>192.168.52.8</host><port>2181</port></node><node><host>192.168.52.9</host><port>2181</port></node></zookeeper>
修改完配置文件,记得重启服务,三个节点都要重启
2.2、验证集群
副本只能同步数据,不能同步表结构,所以我们需要在每台机器上自己手动建表。
#进入容器
docker exec -it ck01 bash
#进入客户端交互界面,执行下面建表语句
clickhouse-client
下面建表ReplicatedMergeTree 参数解释:
第一个参数是分片的 zk_path 一般按照:/clickhouse/table/{shard}/{table_name} 的格式写,如果只有一个分片就写 01 即可。咱们这默认写/clickhouse/table/01/t_order_rep
第二个参数是副本名称,相同的分片副本名称不能相同,在每台建表时不能一样,咱们用rep_7,rep_8,rep_9。
create table t_order_rep (id UInt32,sku_id String,total_amount Decimal(16,2),create_time Datetime
) engine =ReplicatedMergeTree('/clickhouse/table/01/t_order_rep','rep_7')partition by toYYYYMMDD(create_time)primary key (id)order by (id,sku_id);
在任意一台机器上执行插入,然后在其他机器上查询。
insert into t_order_rep 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');
3、Clickhouse分片集群搭建
1、副本集群,实际就是对数据做了备份,达到了高可用。 分片集群是对数据做了横向扩展,就是如果一个机器装不下数据,就用分片的技术,分配到多台机器上。
2、其实很多场景都用不到分片集群。数据量不是太大的情况,就用副本集群吧。分片集群查询反正会消耗网络资源,从而降低查询速度。
这个后面有时间更新把》》》》》》
相关文章:
docker安装clickhouse副本集群
docker安装clickhouse副本集群 1、clickhouse副本集群搭建1.1、docker安装zookeeper集群1.1.1、zookeeper第一个节点安装1.1.2、zookeeper第二个节点安装1.1.3、zookeeper第三个节点安装1.1.4、zookeeper客户端命令 2、Clickhouse副本集群搭建2.1、clickhouse搭建2.2、验证集群…...
vue超过三行显示省略号和查看更多按钮
1、超过3行显示省略号和更多按钮,不超过3行正常显示; html: <div class"container"><div style"display: flex;"><div class"content"><div class"text-content" ref"textContentR…...
【软考速通笔记】系统架构设计师⑤——软件工程基础知识
文章目录 一、前言二、基础知识点2.1 软件危机2.2 软件生命周期 三、软件过程模型(论文)3.1 瀑布模型3.2 原型模型3.3 螺旋模型3.4 敏捷模型3.5 软件统一过程模型3.6 软件成熟度模型3.7 软件成熟度模型集成 四、需求工程五、软件测试5.1 根据程序执行状态…...
Qt 详解QRubberBand
文章目录 QRubberBand 简介前言 QRubberBand 的作用QRubberBand 的主要功能QRubberBand 的常用方法QRubberBand 的典型应用场景示例代码总结 QRubberBand 简介 前言 在 Qt 中,QRubberBand 是一个非常实用的控件,它通常用于图形界面中的“选择区域”功能…...
HTB:Love[WriteUP]
目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 使用nmap对靶机开放端口进行脚本、服务扫描 使用浏览器访问靶机443端口 尝试利用该功能访问靶机自身80端口 使用ffuf对靶机80端口进行路径FUZZ 漏洞利用 使用searchsploit搜索靶机80端…...
【RabbitMQ 消息列队测试之:调试技巧】
RabbitMQ 消息列队测试之:调试技巧 1. 使用 RabbitMQ 管理界面2. 启用日志记录3. 使用 `rabbitmqctl` 命令行工具4. 检查和分析死信队列(DLQ)5. 监控系统资源6. 性能测试工具:`rabbitmq-perf-test`7. 使用工具调试消息内容8. 检查和调整消费者处理速率9. 启用长时间运行的测…...
Ubuntu FTP服务器的权限设置
在Ubuntu中设置FTP服务器的权限,主要涉及到用户权限管理和文件系统权限设置。以下是详细的步骤和配置方法: 安装FTP服务器软件 首先,确保已经安装了FTP服务器软件。常用的FTP服务器软件包括vsftpd和Pure-FTPd。以下是使用vsftpd作为示例的安…...
@Pattern (用于校验字符串是否符合特定正则表达式)
Pattern 是一个用于校验字符串是否符合特定正则表达式的注解,它在 Java 中常用于验证输入数据的格式。以下是 Pattern 注解的详解和使用方法: 含义 Pattern 注解用于在 Java 中对字段进行注解,以确保其值与指定的正则表达式匹配。这个注解可…...
5G学习笔记之随机接入
目录 1. 概述 2. MSG1 2.1 选择SSB 2.2 选择Preamble Index 2.3 选择发送Preamble的时频资源 2.4 确定RA-RNTI 2.5 确定发送功率 3. MSG2 4. MSG3 5. MSG4 6. 其它 6.1 切换中的随机接入 6.2 SI请求的随机接入 6.3 通过PDCCH order重新建立同步 1. 概述 随机接入…...
webGL入门教程_03GLSL、OpenGL、WebGL 定义及关系
GLSL、OpenGL、WebGL 定义及关系 1. 定义 1.1 GLSL(OpenGL Shading Language) 定义: GLSL 是 OpenGL 的着色器语言,用于编写 GPU 可编程着色器,定义图形渲染过程中顶点和像素(片元)的处理逻辑。…...
git基本操作说明
一 基本操作说明 Git常用命令: clone、push、add、commit、checkout、pull。 流程如下: 仓库说明: workspace:工作区staging area:暂存区/缓存区local repository:版本库或本地仓库remote repository&…...
微知-git如何添加空目录的几种方式?(.gitkeep, githook, gitconfig)
背景 在Git中,空目录(空文件夹)默认是不会被跟踪的,因为Git主要跟踪文件的变化。但是如何让git添加空目录? #mermaid-svg-3Y4NksLyEeuMs4FC {font-family:"trebuchet ms",verdana,arial,sans-serif;font-si…...
MySQL 数据库学习教程一:开启数据库探索之旅
在当今数字化时代,数据已然成为企业和组织最为宝贵的资产之一。而数据库管理系统则是存储、管理和操作这些数据的核心工具。MySQL 作为一款广泛应用的开源关系型数据库管理系统,以其可靠性、高性能和易用性而备受青睐。如果你渴望踏入数据库领域…...
Vue+Elementui el-tree树只能选择子节点并且支持检索
效果: 只能选择子节点 添加配置添加检索代码 源码: <template><div><el-button size"small" type"primary" clearable :disabled"disabled" click"showSign">危险点评估</el-button>…...
Lumos学习王佩丰Excel第十八讲:LOOKUP函数与数组
一、回顾统计函数 1、使用SUMIF函数 sumif(条件区域,求和条件,求和区域) 2、使用SUMIFS函数 SUMIFS(求和范围, 条件范围1, 条件1, 条件范围2, 条件2, ...) 二、认识数组 1、数组生成原理 所谓数组,是有序的元素序列。组成数组的各个变量称为数组的元素。对于Ex…...
Git的基本使用操作
文章目录 Git 全局配置基本操作Git 常用命令版本回退根据版本号回滚分支远端分支 🏡作者主页:点击! 🤖Git专栏:点击! ⏰️创作时间:2024年12月1日12点50分 Git 全局配置 虽然说是全局配置&am…...
【C语言】结构体嵌套
结构体嵌套是指在一个结构体中定义另一个结构体作为其成员。这种方式可以实现更复杂的数据结构设计,便于对数据进行分层管理和组织,广泛应用于实际开发中,例如操作系统内核、嵌入式系统、网络协议解析等。下面是对结构体嵌套的详细介绍&#…...
PDF view | Chrome PDF Viewer |Chromium PDF Viewer等指纹修改
1、打开https://www.browserscan.net/zh/ 2、将internal-pdf-viewer改为 internal-pdf-viewer-jdtest看下效果: 3、源码修改: third_party\blink\renderer\modules\plugins\dom_plugin_array.cc namespace { DOMPlugin* MakeFakePlugin(String plugin_…...
maxun爬虫工具docker搭建
思路来源开源无代码网络数据提取平台Maxun 先把代码克隆到本地(只有第一次需要) git clone https://github.com/getmaxun/maxun.git 转到maxun目录 cd maxun 启动容器 docker-compose --env-file .env up -d 成功启动六个容器 网址 http://local…...
JAVAWeb之javascript学习
1.js引入方式 1. 内嵌式:在head中,通过一对script标签引入JS代码;cript代码放置位置有一定的随意性,一般放在head标签中;2.引入外部js文件 在head中,通过一对script标签引入外部JS代码;注意&…...
vue3中是如何实现双向数据绑定的
在 Vue 3 中,双向数据绑定主要通过 v-model 指令实现。v-model 是一个语法糖,它内部实际上结合了 v-bind 和 v-on 指令来实现数据的双向绑定。下面详细介绍 Vue 3 中双向数据绑定的实现原理和使用方法。 双向数据绑定的基本原理 v-bind 指令࿱…...
JavaScript事件机制详解
JavaScript中的事件模型是指当用户与网页进行交互时,浏览器会触发不同类型的事件,开发者可以通过添加事件监听器来响应这些事件。事件流是描述事件在页面元素中传播的过程,从窗口对象开始,逐级向下传播到最具体的元素,…...
k8s运行运行pod报错超出文件描述符表限制
1.问题描述 运行pod超过文件描述符表 unable to allocate file descriptor table - out of memory/opt/COMMAND.sh: line 9: 2.查看设备的文件描述符限制 操作前一定要先查询这个值,2097152这个值即为我们可设置的最大值,超过这个值后将无法登录&am…...
vue 2 父组件根据注册事件,控制相关按钮显隐
目标效果 我不注册事件,那么就不显示相关的按钮 注册了事件,才会显示相关内容 实现思路 组件在 mounted 的时候可以拿到父组件注册监听的方法 拿到这个就可以做事情了 mounted() {console.log(this.$listeners, this.$listeners);this.show.search !…...
22智能 图
例题 根据下列顶点之间的关系,画出相应的图结构 A -> B, C, D B -> A, C, C -> A, D, E, D -> B, E, E -> C, 数据结构:使用邻接表表示图,每个顶点有一个链表来存储与它相邻的顶点。 功能: 创建图。 添加边。 打…...
Springfox、Swagger 和 Springdoc
Springfox、Swagger 和 Springdoc 是用于在 Spring Boot 项目中生成 API 文档的工具,但它们之间有显著的区别和演进关系: 1. Swagger 简介 Swagger 是一个开源项目,旨在为 RESTful APIs 提供交互式文档。最早由 SmartBear 开发,…...
编程基础篇
什么是编程? 原文地址 :样式不太熟悉,有点单一,原文地址 一千个人眼中有一千个哈姆雷特,以下是我眼中的编程: A每天出门需要关一下空调,在家喜欢室内温度在 20左右,6 点左右会打开灯…...
GPT视角下,如何在密码学研究中找到属于你的方向?
(本文所有内容由GPT生成)在密码学领域发现关键性的研究方向并成为一位优秀的密码学研究员,需要结合对领域趋势的洞察、扎实的理论基础以及创新的研究思维。以下是具体步骤和方法: 一、发现关键性研究方向 关注领域前沿动态 顶级会…...
【经典】星空主题的注册界面HTML,CSS,JS
目录 界面展示 完整代码 说明: 这是一个简单的星空主题的注册界面,使用了 HTML 和 CSS 来实现一个背景为星空效果的注册页面。 界面展示 完整代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8&…...
Linux学习——4_WEB服务器的部署及优化
WEB服务器的部署及优化 用户常用关于web信息 什么是www www是world wide web的缩写,即万维网,也就是全球信息广播 通常说的上网就是使用www来查询用户所需要的信息。 www可以结合文字、图形、影像以及声音等多媒体,超链接的方式将信息以…...
ppt可以做网站/北京网站制作公司
我是一名国家二级运动员,也是一名健身减脂教练,专注于减脂塑形。原问题是:停止减肥之后,每天吃的都超过基础热量,还不运动,体重却一直在掉,这是什么原因?已经瘦了好多,17…...
做网站业务员怎么样/百度seo站长工具
今天主要讲三大部分内容: 一、匿名函数二、函数递归与二分法三、面向过程编程 一、匿名函数: """ 1. 什么时匿名函数def定义的是有名函数:特点是可以通过名字重复调用def func(): #func函数的内存地址pass匿名函数就是没有名字的函数:特点…...
高新技术企业网站怎么做/在线一键生成网页
概述 dialog 是HTML5新增的语义化双标签,用于展示一个交互式的模态对话框。 绝大多数浏览器都不支持,仅有Chrome等浏览器支持。 属性 open 用于控制模态框的显隐,即含有open属性就显示,否则隐藏。 <dialog open><p>…...
遵义建立公司网站的步骤/北京网站推广机构
传文件到服务器 内容精选换一换安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。例如QQ.exe。本地磁盘映射(推荐使用)使用…...
长沙网站优化排名/济南计算机培训机构哪个最好
PHP常见错误提示PHP常见错误提示### Php常见错误提示#### 一、Fatal error: Call to undefined function……函数不存在,可能的原因:1、系统不存在这个函数且你也没自定义2、有人会问,我在别的机器上就不报错。那是因为环境不同,这…...
大连做网站排名/短视频seo推广
watch的用法 当我们每次更新代码的时候,都需要npm run build,重新打包,非常麻烦,所以可以使用watch去监听打包 有同学说,可以直接使用devServer啊,用devServer是不能看到实体文件的,产生的文件存…...