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、验证集群…...
详解AI网关助力配电房实现智能化管控应用
对于一些建设年份久远的老旧配电房,由于配套降温散热设施设备不完善、线路设备老化等因素,极易出现因环境过热而影响设备正常稳定运行,进而导致电气故障甚至火灾等事故产生。 基于AI网关的配电房智能监控及管理 针对配电房的实时安全监测及…...
uniapp调用腾讯定位api
1、注册腾讯地址api接口,创建应用获取key WebService API | 腾讯位置服务 2、配置获取方法getCity // 定位服务getCity(latitude, longitude) {const key XXXX-XXXX-XXXX-XXXX-XXXX; // 替换为你的腾讯位置服务密钥const url /apis.map.qq.com/ws/geocoder/v1/…...
映射vim键位,基本功能键位表(未更完)
键位映射:建议使用jj代替esc,毕竟esc离手那么远 linux下修改方法是:vim /etc/vim/vimrc 在该文件尾添加inoremap jj <Esc>该方法可以同样可以用到其他键位映射上 i:表示这个映射是在插入模式(insert mode)下有效…...
【Python】爬虫实战03:自动化抢票脚本【某麦网】
1. 脚本介绍 1.1 背景介绍 在这个数字化时代,演唱会、体育赛事和各种活动的门票销售往往在线上进行。由于热门活动的高需求和门票的有限供应,抢票成为了一场激烈的竞争。许多粉丝和爱好者经常因为手速不够快或网络延迟而错失购票机会。为了提高抢票的成…...
AspNet WebAPI 模型绑定问题
继承System.Web.Http.ApiController的Action的Model如果被[Serializable]定义,会导致Model的字段无法绑定。 Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll [Serializable] public class Model {public string id { get; set; } }public MyA…...
ISAAC SIM踩坑记录--添加第三方3D场景
ISAAC SIM仿真首先就是要有合适的3D场景,官方提供了一些场景,如果不能满足要求,那就只能自己建。 对于我这种不会3D建模的菜鸟,只能到网上下载了,sketchfab就是一个不错的平台,有不少免费资源可以下载。 …...
Linux中Crontab(定时任务)命令详解
文章目录 Linux中Crontab(定时任务)命令详解一、引言二、Crontab的基本使用1、Crontab命令格式2、Crontab常用操作 三、Crontab的配置与服务管理1、配置Crontab2、服务管理 四、使用示例1、每天凌晨2点备份网站数据2、每周一凌晨3点清理临时文件3、每月的…...
在Ubuntu中运行和管理AppImage
文章目录 什么是AppImage?如何在Ubuntu中运行AppImage?如何管理AppImage?安装AppImageLauncher如何添加AppImage到系统?如何从系统中移除AppImage? 总结 什么是AppImage? AppImage是一种将应用程序打包为单…...
2024年12月大语言模型最新对比:GPT-4、Claude 3、文心一言等详细评测
前言 随着人工智能技术的快速发展,大语言模型(LLM)已经成为了技术领域最热门的话题。本文将详细对比目前主流的大语言模型,帮助大家选择最适合的工具。 一、OpenAI GPT系列 1. GPT-4 核心优势: 多模态理解能力强 逻辑推理能力出色 创造…...
上下位关系自动检测方法
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
Linux入门攻坚——40、Linux集群系统入门-lvs(1)
Cluster,集群,为了解决某个特定问题将多台计算机组合起来形成的单个系统。 这个单个集群系统可以扩展,系统扩展的方式:scale up,向上扩展,更换更好的主机;scale out,向外扩展&…...
结构篇| 浅析LLaMA网络架构
01 前言 LLaMA(Large Language Model Meta AI)是由Meta AI 发布的一个开放且高效的大型基础语言模型。为什么突然讲这个模型,主要LLaMA 已经成为了最受欢迎的开源大语言模型之一,LLaMA 系列模型在学术界和工业界引起了广泛的 关注,对于推动大语言模型技术的开源发展做出了…...
CTF-PWN: 全保护下格式化字符串利用 [第一届“吾杯”网络安全技能大赛 如果能重来] 赛后学习(不会)
通过网盘分享的文件:如果能重来.zip 链接: https://pan.baidu.com/s/1XKIJx32nWVcSpKiWFQGpYA?pwd1111 提取码: 1111 --来自百度网盘超级会员v2的分享漏洞分析 格式化字符串漏洞,在printf(format); __int64 sub_13D7() {char format[56]; // [rsp10h] [rbp-40h]…...
openEuler卸载 rpm安装的 redis
停止 Redis 服务 sudo systemctl stop redis禁用 Redis 服务 sudo systemctl disable redis 卸载 Redis 软件包 sudo yum remove redis查找并删除 Redis 的残留文件 find / -name red*删除 Redis 配置文件 删除 Redis 数据文件 sudo rm -rf /var/lib/redis检查 Redis 是否…...
xxl-job分布式任务调度
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 GitHub:https://github.com/xuxueli/xxl-job 码云:https://gitee.com/xuxue…...
flutter_quill如何设置Editor中的文字为富文本
比如一个场景 在输入框中,某某某 是一个颜色,其他文本是一个颜色 这里要注意 const QuillEditor({required this.controller,required this.focusNode,required this.scrollController,required this.scrollable,required this.padding,required this…...
shell语法(1)bash
shell是我们通过命令行与操作系统沟通的语言,是一种解释型语言 shell脚本可以直接在命令行中执行,也可以将一套逻辑组织成一个文件,方便复用 Linux系统中一般默认使用bash为脚本解释器 在Linux中创建一个.sh文件,例如vim test.sh…...
AgGrid 组件封装设计笔记:自定义 icon 以及每个 icon 的点击事件处理
文章目录 问题目前解决效果 v1思路 目前解决效果 v0思路 代码V1 问题 自己封装的 AgGrid 如何自定义传递 icon ,以及点击事件的处理? 目前解决效果 v1 思路 目前解决效果 v0 思路 一张图片说明一下 代码 V1 父组件使用 <template><MyPageL…...
什么是TCP的三次握手
TCP(传输控制协议)的三次握手是一个用于在两个网络通信的计算机之间建立连接的过程。这个过程确保了双方都有能力接收和发送数据,并且初始化双方的序列号。以下是三次握手的详细步骤: 第一次握手(SYN)&…...
ElasticSearch学习记录
服务器操作系统版本:Ubuntu 24.04 Java版本:21 Spring Boot版本:3.3.5 如果打算用GUI,虚拟机安装Ubuntu 24.04,见 虚拟机安装Ubuntu 24.04及其常用软件(2024.7)_ubuntu24.04-CSDN博客文章浏览阅读6.6k次࿰…...
10.在 Vue 3 中使用 OpenLayers 加载引用 Stamen 地图(多种形式)
在 Web 地图开发中,OpenLayers 是一个非常强大且灵活的 JavaScript 库,它可以帮助我们加载各种地图层(如 OpenStreetMap、Google Maps、Bing Maps 等)。而 Stamen 地图是一个非常常见的地图样式,它提供了多种地图样式&…...
json与proto序列化,反序列化性能对比
1. 说proto快,必须知道他快多少?为什么快? 快多少? // 测试proto序列化和反序列化的性能func BenchmarkProtobufMarshal(b *testing.B) {// 创建一个 Request 对象req : &demo.Request{Ping: "ping",}// 测试序列化的性能b.ResetTimer()for i : 0; i < b…...
[Redis#14] 持久化 | RDB | bgsave | check-rdb | 灾备
目录 0.概述 持久化的策略 1 RDB 1.1 触发机制 1.2 流程说明 1.3 RDB 的优缺点 0.概述 在学习 MySQL 数据库时,我们了解到事务的四个核心特性:原子性、一致性、持久性和隔离性。这些特性确保了数据库操作的安全性和可靠性。当我们转向 Redis 时&a…...
ubuntu部署RocketMQ
Quick Start RocketMQ 下载 解压 把下载的文件解压重命名,放在想放的位置 需要提前配置JDK环境变量,或者直接在配置文件中指定JAVA_HOME 编辑 编辑 rocketmq/bin下的 runserver.sh 和runbroker.sh文件,把内存大小改小一点,因为…...
深入浅出:PHP中的变量与常量全解析
文章目录 引言理解变量普通变量赋值操作变量间赋值引用赋值取消引用 可变变量预定义变量 理解常量声明常量使用define()函数const关键字 使用常量预定义常量 扩展话题:作用域与生命周期实战案例总结与展望参考资料 引言 在编程的世界里,变量和常量是两种…...
概率论相关知识随记
作为基础知识的补充,随学随记,方便以后查阅。 概率论相关知识随记 期望(Expectation)期望的定义离散型随机变量的期望示例:掷骰子的期望 连续型随机变量的期望示例:均匀分布的期望 期望的性质线性性质期望的…...
gpt-computer-assistant - 极简的 GPT-4o 客户端
更多AI开源软件: AI开源 - 小众AIhttps://www.aiinn.cn/sources gpt-computer-assistant是一个将 ChatGPT MacOS 应用程序提供给 Windows 和 Linux 的替代工作。因此,这是一个全新且稳定的项目。此时,您可以轻松地将其作为 Python 库安装&am…...
【Java开发】Springboot集成mybatis-plus
1、引入 mybatis-plus 依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.0</version> </dependency> <!--mysql依赖--> <dependen…...
本地运行打包好的dist
首先输入打包命令 每个人设置不一样 一般人 是npm run build如果不知道可以去package.json里去看。 打包好文件如下 命令行输入 :npm i -g http-server 进入到dist目录下输入 命令cmd 输入 http-server 成功...
mac安装php和xdebug调试
要在Mac上安装PHP 7.4,你可以通过几种方式来完成,但鉴于PHP7.4官方已不再维护,并且Homebrew默认仓库中不再提供此版本,我们需要从第三方仓库或直接从源代码进行安装。本文以brew方式安装,如果安装的是8.0以上ÿ…...
使用Rufus制作Ubuntu需要注意
在使用Rufus制作Ubuntu启动盘并进行BIOS设置时,需要注意以下几点: 关闭RST(英特尔 快速存储技术):在BIOS设置中,如果电脑启用了RST功能,需要将其关闭。因为Ubuntu可能无法检测到硬盘&a…...
2024 阿里云Debian12.8安装apach2【图文讲解】
1. 更新系统,确保您的系统软件包是最新的 sudo apt update sudo apt upgrade -y 2. 安装 Apache Web 服务器 apt install apache2 -y 3. 安装 PHP 及常用的扩展 apt install php libapache2-mod-php -y apt install php-mysql php-xml php-mbstring php-curl php…...
iOS平台接入Facebook登录
1、FB开发者后台注册账户 2、完善App信息 3、git clone库文件代码接入 4、印尼手机卡开热点调试 备注: 可能遇到的问题: 1、Cocos2dx新建的项目要更改xcode的git设置,不然卡在clone,无法在线获取FBSDK 2、动态库链接 需要在…...
关于在ubuntu上无法运行EasyConnect的解决方法
需要这三个文件 libpangocairo-1.0-0_1.40.14-1_amd64.deb libpangoft2-1.0-0_1.40.14-1_amd64.deb libpango-1.0-0_1.40.14-1_amd64.deb然后执行 cp source /usr/share/sangfor/EasyConnect再重启EasyConnect即可 下载链接 http://kr.archive.ubuntu.com/ubuntu/pool/main/…...
常用 Linux 各资源指标监控示例(长期更新)
1、在 linux 中,查看指定进程下各线程运行情况 # ps 方式,查看 pid 为 776 的进程有哪些线程 ps -Tp 776 #> PID SPID TTY TIME CMD #> 776 776 ? 00:00:01 zebra #> 776 778 ? 00:00:00 RCU sweeper #&g…...
【目标跟踪】AntiUAV600数据集详细介绍
AntiUAV600数据集的提出是为了适应真实场景,即无人机可能会随时随地出现和消失。目前提出的Anti-UAV任务都只是将其看做与跟踪其他目标一样的任务,没有结合现实情况考虑。 论文链接:https://arxiv.org/pdf/2306.15767https://arxiv.org/pdf/…...
数学建模之RSR秩和比综合评价法(详细)
RSR秩和比综合评价法 一、概述 秩和比法(Rank-sum ratio,简称RSR法)是我国学者田凤调于1988年提出的,田教授是我国杰出的卫生统计学家,该方法最初提出时用于解决医学卫生领域的综合评价问题,后经各领域学者的补充和完善…...
【Vue3】【Naive UI】<NAutoComplete>标签
【Vue3】【Naive UI】标签 <NAutoComplete> 是 Naive UI 库中的一个组件,用于实现自动完成或联想输入功能。 它允许用户在输入时看到与当前输入匹配的建议列表,从而帮助用户更快地填写表单字段。 这个组件通常用于搜索框、地址输入等场景ÿ…...
SpringBoot自动装配原理
SpringBoot自动装配原理 在介绍SpringBoot自动装配原理之前我们需要先看一个注解 --> SpringBootApplication SpringBootApplication public class BackendApp {public static void main(String[] args) {SpringApplication.run(BackendApp.class, args);} }我们都知道Spr…...
Flask: flask框架是如何实现非阻塞并发的
写在前面:Flask框架是通过多线程/多进程+阻塞的socket实现非阻塞,其本质是基于python的源库socketserver实现的 前言 认识WSGI协议 认识Werkzeug flask是如何实现非阻塞的 本文使用的flask框架为最新的1.1.1版本,所有代码基于python3运行 一:前言 使用过flask或者其他web框…...
svg和canvas比较
SVG(Scalable Vector Graphics)和Canvas都是用于在网页上绘制图形的技术,但它们在工作原理、使用场景和特性上有所不同。以下是对SVG和Canvas的详细介绍及使用示例: 一、SVG 简介 SVG是一种基于XML的标记语言,用于描…...
【前端学习路线】(超详细版本)
先附上学习路线图:前端学习路线 第一阶段:前端入门(htmlcss) 前端最基本的知识,需要先将这些内容融汇贯通,学习后面内容才会不吃力。学习完可以做几个静态页练习一下。 推荐视频学习链接: 黑马程…...
VCU——matlab/simulink软件建模
一、认识MATLAB/Simulink 1. matlab主界面 2. simulink 二、Simulink 建模基础 1. Simulink模块 2. 模型的仿真 matlab 中比较两个浮点型,不要用,采取差值和Compare To Constant的方案 3. 自动代码生成...
ASP.NET Core SignalR 双工通信
01. 介绍 🎯 ASP.NET Core SignalR 是一个开放源代码库,它简化了向应用添加实时 Web 功能的过程。 实时 Web 功能使服务器端代码可以在服务器上激发事件时将事件推送到连接的客户端。 使用 SignalR,客户端也可以将消息发送到服务器ÿ…...
以数据驱动增长,火山引擎数智平台“数据找人”为双12营销提效
“双12”即将来临,众多商家最为关心的,莫过于如何借助对数据的充分利用实现降本增效,在竞争激烈的大环境中快人一步,为了达成这个目标,商家往往需要耗费人力、物力以及时间对海量数据进行寻找与分析。 那么,…...
VuePress学习
1.介绍 VuePress 由两部分组成:第一部分是一个极简静态网站生成器 (opens new window),它包含由 Vue 驱动的主题系统和插件 API,另一个部分是为书写技术文档而优化的默认主题,它的诞生初衷是为了支持 Vue 及其子项目的文档需求。…...
mysql cpu线上问题排查
查看当前的线程情况 show full processlist 查看当前的线程情况 SELECT * FROM performance_schema.threads WHERE PROCESSLIST_TIME > 0 查看当前数据库的连接数 SELECT * FROM performance_schema.threads WHERE PROCESSLIST_DB ‘db’ ; 查看当前mysql连接的数 SHOW GLO…...
QT6学习 第九天 QDialog
QT6学习第九天 QDialog 对话框 QDialog模态和非模态对话框标准对话框颜色对话框进度对话框 对话框 QDialog 模态和非模态对话框 QDialog 类是所有对话框类的基类。对话框是一个经常用来完成短小任务或和用户进行简单交互的顶层窗口。按照运行对话框时是否还可以和该程序的其…...
windows基础
系统目录 服务 端口 注册表 黑客常用DOS命令(在拿到shell时会用到) 一、 系统目录 Windows目录 系统的安装目录 System32configSAM文件 是用户密码的存储文件 System32etchost文件 记录本地解析(优先级大于DNS域名解析)可以自…...