clickhouse-v24.1-离线部署
部署版本
数据库版本:24.1.1.2048
jdk版本:jdk8
4个文件(三个ck的包):
OpenJDK8U-jdk_x64_linux_hotspot_8u382b05.tar
clickhouse-client-24.1.1.2048.x86_64.rpm
clickhouse-common-static-24.1.1.2048.x86_64.rpm
clickhouse-server-24.1.1.2048.x86_64.rpm
文件下载地址
百度云个人下载地址(可能失效):
链接: 百度网盘 请输入提取码 提取码: 2xy6
官网地址:
packages.clickhouse.com/rpm/stable/
阿里云地址:
clickhouse-rpm安装包下载_开源镜像站-阿里云
本次部署集群情况
三个节点的集群
副本设置了一分片三副本
检查环境
官方预构建的二进制文件通常针对 x86_64 进行编译,并利用 SSE 4.2 指令集,因此,除非另有说明,支持它的 CPU 使用将成为额外的系统需求。下面是检查当前 CPU 是否支持 SSE 4.2 的命令:
$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
部署过程
网络配置
如果你部署的环境有端口访问限制,需要提前开通这些端口的访问权限
端口:8123 9000 9009(内部互相访问) 9181 9234
cat > /etc/hosts <<EOF
10.1.1.5 bigdata01
10.1.1.6 bigdata02
10.1.1.7 bigdata03
EOF
修改本地的主机名,每个节点执行的主机名根据上面的网络设置进行修改
hostnamectl set-hostname 新主机名
eg:
hostnamectl set-hostname bigdata01
jdk安装
#上传到对应的目录,然后解压
tar -xf OpenJDK8U-jdk_x64_linux_hotspot_8u382b05.tar.gz -C /usr/local# 配置环境变量
cat > /etc/profile.d/jdk.sh <<EOF
JAVA_HOME=/usr/local/jdk8u382-b05
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
EOF#配置生效
source /etc/profile.d/jdk.sh
ck安装
每个节点都要执行操作
#提前把这三个文件放到同一目录下面
#clickhouse-client-24.1.1.2048.x86_64.rpm
#clickhouse-common-static-24.1.1.2048.x86_64.rpm
#clickhouse-server-24.1.1.2048.x86_64.rpm
# 安装ck的三个包 (去掉keeper的组件,否则提示冲突)
yum -y install clickhouse-*# 修改配置# 修改数据、缓存存储位置
sed -i 's#var/lib/clickhouse#data/clickhouse#g' /etc/clickhouse-server/config.xml# 创建存储目录
mkdir /data/clickhouse && chown -R clickhouse.clickhouse /data/clickhouse#日志目录(非必须,如果启动提示文件不存在,再创建)
vim /var/log/clickhouse-server/clickhouse-server.log
vim /var/log/clickhouse-server/clickhouse-server.err.log# 设置权限
chown clickhouse:clickhouse /var/log/clickhouse-server/clickhouse-server.log
chown clickhouse:clickhouse /var/log/clickhouse-server/clickhouse-server.err.log
chown clickhouse:clickhouse /usr/bin/clickhouse# 配置文件的权限
chmod 644 /etc/clickhouse-server/config.xml# 修改监听地址使远程可访问
cat > /etc/clickhouse-server/config.d/listen.xml <<EOF
<clickhouse><listen_try>1</listen_try><listen_host>0.0.0.0</listen_host>
</clickhouse>
EOF#修改时区
cat > /etc/clickhouse-server/config.d/timezone.xml <<EOF
<clickhouse><timezone>Asia/Shanghai</timezone>
</clickhouse>
EOF
修改keeper
注:每个节点server_id的值不一样,根据实际修改。该参数不能重复,每个节点唯一
注:单节点的raft_configuration参数也需要配置
修改 /etc/clickhouse-server/config.xml 主配置文件,在根节点 <clickhouse> 下添加配置。server_id 字段需要每个节点唯一。
#打开配置文件
vim /etc/clickhouse-server/config.xml
#根节点 <clickhouse> 标签下添加以下内容
<!-- 添加以下条目以允许通过网络接口进行外部通信。 -->
<listen_host>0.0.0.0</listen_host><!-- 指定实例启用 ClickHouse Keeper。更新每台服务器的<server_id>设置,node1为1、node2为2、node3为3。-->
<keeper_server><tcp_port>9181</tcp_port><server_id>1</server_id><log_storage_path>/data/clickhouse/coordination/log</log_storage_path><snapshot_storage_path>/data/clickhouse/coordination/snapshots</snapshot_storage_path><coordination_settings><operation_timeout_ms>10000</operation_timeout_ms><session_timeout_ms>30000</session_timeout_ms><raft_logs_level>warning</raft_logs_level><force_sync>false</force_sync></coordination_settings><raft_configuration><server><id>1</id><hostname>bigdata01</hostname><port>9234</port></server><server><id>2</id><hostname>bigdata02</hostname><port>9234</port></server><server><id>3</id><hostname>bigdata03</hostname><port>9234</port></server></raft_configuration>
</keeper_server><!-- 指定实例所使用的 ClickHouse Keeper -->
<zookeeper><node><host>bigdata01</host><port>9181</port></node><node><host>bigdata02</host><port>9181</port></node><node><host>bigdata03</host><port>9181</port></node>
</zookeeper>
配置项目的作用:
coordination_settings 配置下的force_sync的作用:
force_sync
选项用于决定 ClickHouse Keeper 是否强制将数据同步到磁盘。在 ClickHouse Keeper 中,当客户端请求更新 ZooKeeper 的数据节点时,ClickHouse Keeper 会将这些更新写入内存缓冲区,并最终写入磁盘。force_sync
控制着这些更新何时被强制同步到磁盘。
修改宏变量
注:每个节点的shard、replica值不一样,根据实际修改
三个节点的副本值replica不同
本次的配置是1分片,3副本(一个数据块,在三个服务器上面存储分别存一份)
bigdata01
vim /etc/clickhouse-server/config.d/macros.xml<clickhouse><macros><installation>ck_cluster</installation><cluster>ck_cluster</cluster><shard>1</shard><replica>1</replica></macros>
</clickhouse>
bigdata02
vim /etc/clickhouse-server/config.d/macros.xml<clickhouse><macros><installation>ck_cluster</installation><cluster>ck_cluster</cluster><shard>1</shard><replica>2</replica></macros>
</clickhouse>
bigdata03
vim /etc/clickhouse-server/config.d/macros.xml<clickhouse><macros><installation>ck_cluster</installation><cluster>ck_cluster</cluster><shard>1</shard><replica>3</replica></macros>
</clickhouse>
修改集群的分片、副本
三个节点操作一致
vim /etc/clickhouse-server/config.d/remote-servers.xml
<clickhouse><default_on_cluster_name>ck_cluster</default_on_cluster_name><default_replica_path>/clickhouse/tables/{cluster}/{shard}/{database}/{table}</default_replica_path><default_replica_name>{replica}</default_replica_name><remote_servers><!-- User-specified clusters --><ck_cluster replace="false"><shard><internal_replication>true</internal_replication><replica><host>bigdata01</host><port>9000</port><user>default</user><password>jM80NNij</password></replica><replica><host>bigdata02</host><port>9000</port><user>default</user><password>jM80NNij</password></replica><replica><host>bigdata03</host><port>9000</port><user>default</user><password>jM80NNij</password></replica></shard></ck_cluster></remote_servers>
</clickhouse>
用户密码
# 生成密码
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'#生成结果
jM80NNij
e377b4470304eadc7342f33ff6cfccc26f7888d46646d6956b7209d33a5f2fb1
#内容 - 建议放在某个配置文件中做留存,防止遗忘
<!--password jM80NNij e377b4470304eadc7342f33ff6cfccc26f7888d46646d6956b7209d33a5f2fb1 -->#解释
# 正常用来登录的密码
jM80NNij
# 配置文件中配置的密码
e377b4470304eadc7342f33ff6cfccc26f7888d46646d6956b7209d33a5f2fb1
打开sql管理能力
vim /etc/clickhouse-server/users.xml
# 编辑该配置项目,打开sql管理能力
<access_management>1</access_management>
添加用户
adminuser帐号配置:
vim /etc/clickhouse-server/users.d/adminuser.xml<clickhouse><users><adminuser><!--password jM80NNij e377b4470304eadc7342f33ff6cfccc26f7888d46646d6956b7209d33a5f2fb1 --><password_sha256_hex>e377b4470304eadc7342f33ff6cfccc26f7888d46646d6956b7209d33a5f2fb1</password_sha256_hex><!-- 打开 adminuser 用户远程连接 --><networks><ip>::/0</ip></networks><quota>default</quota><profile>default</profile></adminuser></users>
</clickhouse>
用户名:adminuser
密码:jM80NNij
default帐号配置:
# 添加密码
sed -i 's#<password></password>#<password_sha256_hex>e377b4470304eadc7342f33ff6cfccc26f7888d46646d6956b7209d33a5f2fb1</password_sha256_hex>#' /etc/clickhouse-server/users.xml
用户名:default
密码:jM80NNij
启动服务
systemctl start clickhouse-server.service
systemctl status clickhouse-server.service
systemctl enable clickhouse-server.service
查看实时日志
journalctl -u clickhouse-server.service -f
验证
启动 ClickHouse 并验证每个 Keeper 实例是否正在运行。在每台服务器上执行以下命令。如果 Keeper
正在运行且运行正常,则该命令将返回: ruok``imok
# echo ruok | nc localhost 9181; echo
imok
如果没有nc 命令
telnet bigdata0x 9181
# eg telnet bigdata01 9181
数据库有一个名为zookeeper的表,其中包含 ClickHouse Keeper 实例的详细信息。让我们看一下表格:system.zookeeper
先登录:
clickhouse-client --password="jM80NNij"
SELECT *
FROM system.zookeeper
WHERE path IN ('/', '/clickhouse');# 查看集群
SHOW CLUSTERS;# 查看集群
SELECTcluster,shard_num,replica_num,host_name,is_local,user,database_shard_name,database_replica_name
FROM system.clusters
查看ClickhouseKeeper的日志
clickhouse-keeper dump /path/to/changelog_1_100000.bin
补充系统日志表的保留时间
查看所有表以及相关的信息
SELECT sum(rows) AS `总行数`,formatReadableSize(sum(data_uncompressed_bytes)) AS `原始大小`,formatReadableSize(sum(data_compressed_bytes)) AS `压缩大小`,round((sum(data_compressed_bytes) / sum(data_uncompressed_bytes)) * 100, 0) AS `压缩率`,`table` AS `表名`
FROM system.parts where database = 'system' group by `table`;
修改的语句
ALTER TABLE `system`.metric_log MODIFY TTL event_date + toIntervalDay(15);
ALTER TABLE `system`.trace_log MODIFY TTL event_date + toIntervalDay(15);
ALTER TABLE `system`.query_log MODIFY TTL event_date + toIntervalDay(15);
ALTER TABLE `system`.asynchronous_metric_log MODIFY TTL event_date + toIntervalDay(15);# 查看创建语句是否成功
SHOW CREATE `system`.metric_log;
B站视频
【clickhouse-v24.1-离线集群部署】 https://www.bilibili.com/video/BV1yNpieREL2/?share_source=copy_web&vd_source=54b8e98ca037df7d40df4e66e8fae702
相关文章:
clickhouse-v24.1-离线部署
部署版本 数据库版本:24.1.1.2048 jdk版本:jdk8 4个文件(三个ck的包): OpenJDK8U-jdk_x64_linux_hotspot_8u382b05.tar clickhouse-client-24.1.1.2048.x86_64.rpm clickhouse-common-static-24.1.1.2048.x86_64.…...

安卓13删除app 链接库警告弹窗Detected problems with app native
总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码修改彩蛋1.前言 有些客户的APP,打开首次会弹窗提示窗口, Detected problems with app native libraries (please consult log for detail):,需要删除这个窗口,避免挡住用户APP。而且这个提示有些app是以t…...
第四次北漂----挣个独立游戏的素材钱
第四次北漂,在智联招聘上,有个小公司主动和我联系。面试了下,决定入职了,osg/osgearth的。月薪两万一。 大跌眼镜的是,我入职后,第一天的工作内容就是接手他的工作,三天后他就离职了。 我之所以…...
漫谈设计模式 [12]:模板方法模式
引导性开场 菜鸟:老大,我最近在做一个项目,遇到了点麻烦。我们有很多相似的操作流程,但每个流程的细节又有些不同。我写了很多重复的代码,感觉很乱。你有啥好办法吗? 老鸟:嗯,听起…...
CSS学习10[重点]--浮动、浮动的效果以及内幕特性
CSS布局——浮动 前言一、普通流二、浮动三、什么是浮动?四、浮动的内幕特性总结 前言 CSS盒子布具的三种机制:普通流(标准流)、定位、浮动。 一、普通流 普通流:网页内元素自上而下,从左到右排序。 二、浮动 浮动…...

matlab基本语法
基本语法 变量命名规则 区分大小写长度不超过63位字母开头,可以有字母、下划线和数字组成,但不能使用标点应该简洁明了 命令行窗口 >>>clc 清楚命令窗口 >>> claer all 清理工作区内容 注释 %% 注释符 数据类型 1.数字 11 2…...

【Leetcode152】乘积最大子数组(动态规划)
文章目录 一、题目二、思路三、代码 一、题目 二、思路 (0)读懂题意:题目的“连续”是指位置的连续,而不是说数字的连续,这是个大坑。 (1)确定状态:定义两个状态来记录当前子数组的…...

STM32(十二):DMA直接存储器存取
DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源。(运行内存SRAM、程序存储器Flash、寄存器) 12个独立可配置的通道&…...
关于我2020年7月至今(2024.9)的“炒股”经历和感受
声明:我远不是一个成熟的投资者(这个名词太大了,我那三瓜两枣似乎完全配不上投资者这三个字,或者“小小散”更加贴切)。本文不构成任何入(股)市的引导或者买卖股票的建议。 “炒股”这个词,相信绝大多数人看来都-是一个贬义词&…...
【Tools】Prompt Engineering简介
摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样 🎵 方芳《摇太阳》 大模型中的Prompt Engineering是指为了提高大模型在特定任…...

多路转接之select(fd_set介绍,参数详细介绍),实现非阻塞式网络通信
目录 多路转接之select 引入 介绍 fd_set 函数原型 nfds readfds / writefds / exceptfds readfds 总结 fd_set操作接口 timeout timevalue 结构体 传入值 返回值 代码 注意点 -- 调用函数 select的参数填充 获取新连接 注意点 -- 通信时的调用函数 添…...

乐鑫安全制造全流程
主要参考资料: 【乐鑫全球开发者大会】DevCon24 #10 |乐鑫安全制造全流程 乐鑫官方文档Flash加密: https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/security/flash-encryption.html 【ESP32S3】使用 Flash 下载工具完成 Flash 加密功能…...
〖open-mmlab: MMDetection〗解析文件:configs/_base_/schedules
详细解析三个训练调度文件:schedule_1x.py、schedule_2x.py、schedule_20e.py 在深度学习模型训练过程中,训练调度(Training Schedule)是至关重要的,它决定了模型训练过程中学习率(Learning Rate, LR&…...
Android之Handler是如何保证延迟发送的
目录 核心组件延迟发送消息的工作原理具体步骤1. 创建 Handler:2.发送延迟消息3.消息入队列4.消息出队和处理: 关键点总结 在 Android 中,Handler 是用于在不同线程之间传递和处理消息的工具。它可以用于定时任务、延迟执行任务等。Handler 如何保证延迟发送消息的核…...
定位信标、基站、标签,定位信标是什么
定位信标、基站、标签,定位信标是什么 今天给各位分享定位信标、基站、标签的知识,其中也会对定位信标是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! 怎样做人员定位啊? 〖…...

2024国赛数学建模B题完整分析参考论文38页(含模型和可运行代码)
2024 高教社杯全国大学生数学建模完整分析参考论文 B 题 生产过程中的决策问题 目录 摘要 一、问题重述 二、问题分析 三、 模型假设 四、 模型建立与求解 4.1问题1 4.1.1问题1思路分析 4.1.2问题1模型建立 4.1.3问题1样例代码(仅供参考) 4.…...
Hive是什么?
Apache Hive 是一个基于 Hadoop 的数据仓库工具,用于在 Hadoop 分布式文件系统(HDFS)上管理和查询大规模结构化数据集。Hive 提供了一个类似 SQL 的查询语言,称为 HiveQL,通过这种语言可以在 HDFS 上执行 MapReduce 作…...

计算机网络:http协议
计算机网络:http协议 一、本文内容与前置知识点1. 本文内容2. 前置知识点 二、HTTP协议工作简介1. 特点2. 传输时间分析3. http报文结构 三、HTTP版本迭代1. HTTP1.0和HTTP1.1主要区别2. HTTP1.1和HTTP2主要区别3. HTTPS与HTTP的主要区别 四、参考文献 一、本文内容…...

【stata】自写命令分享dynamic_est,一键生成dynamic effect
1. 命令简介 dynamic_est 是一个用于可视化动态效应(dynamic effect)的工具。它特别适用于事件研究(event study)或双重差分(Difference-in-Differences, DID)分析。通过一句命令即可展示动态效应…...

文心一言 VS 讯飞星火 VS chatgpt (342)-- 算法导论23.2 1题
一、对于同一个输入图,Kruskal算法返回的最小生成树可以不同。这种不同来源于对边进行排序时,对权重相同的边进行的不同处理。证明:对于图G的每棵最小生成树T,都存在一种办法来对G的边进行排序,使得Kruskal算法所返回的…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...