首页 > Python资料 博客日记
clickhouse-v24.1-离线部署
2024-09-12 20:00:07Python资料围观44次
部署版本
数据库版本: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/
阿里云地址:
本次部署集群情况
三个节点的集群
副本设置了一分片三副本
检查环境
官方预构建的二进制文件通常针对 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;
# 查看集群
SELECT
cluster,
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
标签:
上一篇:外包干了三年,快要废了。。。
下一篇:day4 QT
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj