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算法所返回的…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...
