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算法所返回的…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
