clickhouse集群部署保姆级教程

ClickHouse安装

版本要求

23.8及之后的版本

硬件要求

三台机器

建议配置

  • 磁盘 ssd 500G
  • 内存 32g
  • cpu 16c

最低配置

  • 磁盘 机械硬盘 50G
  • 内存 4g
  • cpu 4c

容量规划

一亿条数据大约使用1TB磁盘容量

参考官方容量推荐

安装包准备

zookeeper安装

zookeeper需要java启动,8版本以上,三台机器都需要执行

解压安装:

yum install -y javatar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /app

配置环境变量:

 vi /etc/profile

添加我们需要的配置信息:

ZOOKEEPER_HOME 为你安装的zookeeper目录

export ZOOKEEPER_HOME=/app/apache-zookeeper-3.9.3-bin
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

检测生效

source /etc/profile
echo $ZOOKEEPER_HOME

配置zookeeper

创建data目录

mkdir /app/apache-zookeeper-3.9.3-bin/data

修改配置

cd /app/apache-zookeeper-3.9.3-bin/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/app/apache-zookeeper-3.9.3-bin/data
clientPort=2181server.1=ip1:2888:3888
server.2=ip2:2888:3888
server.3=ip3:2888:3888

为每台机器配置节点id

在机器一上执行:

echo 1 >/app/apache-zookeeper-3.9.3-bin/data/myid

在机器二上执行:

echo 2 >/app/apache-zookeeper-3.9.3-bin/data/myid

在机器三上执行:

echo 3 >/app/apache-zookeeper-3.9.3-bin/data/myid

启动zookeeper

cd /app/apache-zookeeper-3.9.3-bin/bin
sh zkServer.sh start

验证

启动成功后可以随便选择一个节点尝试连接另一个节点验证:

sh zkCli.sh -server ip:2181

clickhouse安装

检查cpu指令集是否支持

执行grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported",返回SSE 4.2 supported
表示检查通过

数据盘挂载

2.1.挂载目录

:::info
clickhouse数据库数据存储目录建议使用挂载目录

挂载目录需要客户提供并完成挂载

示例挂载命令:mount /dev/sdb1 /app

:::

2.2.创建数据目录
mkdir -p /app/clickhouse/data
mkdir -p /app/clickhouse/tmp
2.3.授予目录权限
chown -R clickhouse:clickhouse /app/clickhouse
chmod 755 /app/clickhouse

下载安装包

http://192.168.0.107/clickhouse/rpm

![](https://i-blog.csdnimg.cn/img_convert/422adfdebe8ec469fc4dcd422cf8d1cb.png下载最新安装包(推荐最新版本)

arm版本使用:

  • clickhouse-common-static-xxx.aarch64.rpm
  • clickhouse-server-xxx.aarch64.rpm
  • clickhouse-client-xxx.aarch64.rpm

安装

rpm -ivh clickhouse-common-static-*.rpm clickhouse-server-*.rpm clickhouse-client-*.rpm# 有提示输入账号的直接回车跳过,后续统一处理

clickhouse配置

默认配置

添加配置/etc/clickhouse-server/config.xml

vim config.xml<listen_host>0.0.0.0</listen_host>
<timezone>Asia/Shanghai</timezone><level>information</level>

修改挂载目录(可选,无挂载目录可不用)

修改数据目录

vim /etc/clickhouse-server/config.xml
路径改为挂载路径即可

6.1 用户管理配置
  • 修改default用户密码为econage123,全部权限,只允许本地登录
  • 添加用户user,密码为econage123,读写权限,bpi服务使用
  • 添加管理用户admin,密码为econage123,读写权限,ddl权限
  • 添加只读用户read,密码为econage123

添加/etc/clickhouse-server/users.d/users.xml,自行修改相关密码

<?xml version="1.0"?>
<clickhouse><!-- See also the files in users.d directory where the settings can be overridden. --><!-- Profiles of settings. --><profiles><!-- Default settings. --><default><max_bytes_before_external_group_by>268435456</max_bytes_before_external_group_by><max_bytes_before_external_sort>268435456</max_bytes_before_external_sort><max_download_threads>1</max_download_threads><input_format_parallel_parsing>0</input_format_parallel_parsing><output_format_parallel_formatting>0</output_format_parallel_formatting><optimize_trivial_insert_select>1</optimize_trivial_insert_select></default><!-- Profile that allows only read queries. --><read><readonly>1</readonly><max_bytes_before_external_group_by>268435456</max_bytes_before_external_group_by><max_bytes_before_external_sort>268435456</max_bytes_before_external_sort><max_download_threads>1</max_download_threads><input_format_parallel_parsing>0</input_format_parallel_parsing><output_format_parallel_formatting>0</output_format_parallel_formatting><optimize_trivial_insert_select>1</optimize_trivial_insert_select></read><write><readonly>0</readonly><allow_ddl>0</allow_ddl><max_bytes_before_external_group_by>268435456</max_bytes_before_external_group_by><max_bytes_before_external_sort>268435456</max_bytes_before_external_sort><max_download_threads>1</max_download_threads><input_format_parallel_parsing>0</input_format_parallel_parsing><output_format_parallel_formatting>0</output_format_parallel_formatting><optimize_trivial_insert_select>1</optimize_trivial_insert_select></write></profiles><!-- Users and ACL. --><users><read><password>econage123</password><networks><ip>::/0</ip></networks><profile>read</profile><quota>default</quota></read><admin><password>econage123</password><networks><ip>::/0</ip></networks><profile>default</profile><quota>default</quota></admin><user><password>econage123</password><networks><ip>::/0</ip></networks><profile>write</profile><quota>default</quota></user><!-- If user name was not specified, 'default' user is used. --><default><password>econage123</password><networks><ip>::1</ip></networks><!-- Settings profile for user. --><profile>default</profile><!-- Quota for user. --><quota>default</quota><!-- User can create other users and grant rights to them. --><access_management>1</access_management></default></users><!-- Quotas. --><quotas><!-- Name of quota. --><default><!-- Limits for time interval. You could specify many intervals with different limits. --><interval><!-- Length of interval. --><duration>3600</duration><!-- No limits. Just calculate resource usage for time interval. --><queries>0</queries><errors>0</errors><result_rows>0</result_rows><read_rows>0</read_rows><execution_time>0</execution_time></interval></default></quotas></clickhouse>

启动服务

systemctl start clickhouse-server
或者
clickhouse start

校验服务

curl localhost:8123
#返回'Ok.'则服务启动正常
clickhouse-client --user=user --password=econage123 --host=192.168.7.18 --query="select version()"
#返回版本号则用户创建正常clickhouse-client --user=admin --password=econage123 --host=192.168.7.18 --query="select version()"
#返回版本号则用户创建正常

clickhosue集群版本配置

三台机器都需要执行上述clickouse安装步骤

添加zookeeper配置
vim /etc/clickhouse-server/config.xml

host是zookeeper的三个地址

port默认2181

修改配置<zookeeper><node index="1"><host>192.168.7.141</host><port>2181</port></node><node index="2"><host>192.168.7.142</host><port>2181</port></node><node index="3"><host>192.168.7.143</host><port>2181</port></node></zookeeper>

配置分片

host是clickhouse的三个地址

port默认9000

                <replica><host>192.168.7.141</host><port>9000</port></replica><replica><host>192.168.7.142</host><port>9000</port></replica><replica><host>192.168.7.143</host><port>9000</port></replica>

配置macros

第一台机器

    <macros><shard>01</shard><replica>01</replica></macros>

第二台机器

    <macros><shard>01</shard><replica>02</replica></macros>

第三台机器

    <macros><shard>01</shard><replica>03</replica></macros>

启动服务

systemctl start clickhouse-server
或者
clickhouse start

验证集群同步

登录任意一台机器

clickhouse-client --user admin --password econage123
select * from system.clusters;

集群名称default

创建 ReplicatedMergeTree 测试表:

任选一台机器,创建一个 ReplicatedMergeTree 引擎的测试表,测试 ZooKeeper 同步功能

CREATE TABLE test_ck ON CLUSTER default (EventDate DateTime, Number UInt32, id UInt32 )ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/test_ck', '{replica}') PARTITION BY toYYYYMM(EventDate) ORDER BY (Number, EventDate, intHash32(id)) SAMPLE BY intHash32(id);

在其他机器节点show tables查看表结构是否同步成功;

创建 Distributed 引擎测试表:
创建一个分布式测试表测试数据分片是否正常。因为已经配置了zookeeper,所以创建表的DDL语句也会同步到其他节点上。

CREATE TABLE dis_test ON CLUSTER default  AS test_ck
ENGINE = Distributed(default, default, test_ck, rand())

show table

文件清单

  • clickhouse-common-static-*.rpm
  • clickhouse-server-*.rpm
  • clickhouse-client-*.rpm
  • /etc/clickhouse-server/users.d/users.xml
  • /etc/clickhouse-server/config.d/config.xml

clickhouse目录说明

  • 数据文件目录 /var/lib/clickhouse/
  • 日志文件目录 /var/log/clickhouse-server/

可视化管理工具

  • dbeaver
  • http://localhost:8123/play
  • 更多参考 https://clickhouse.com/docs/zh/interfaces/third-party/gui

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/31862.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FANformer:融合傅里叶分析网络的大语言模型基础架构

近期大语言模型(LLM)的基准测试结果引发了对现有架构扩展性的思考。尽管OpenAI推出的GPT-4.5被定位为其最强大的聊天模型&#xff0c;但在多项关键基准测试上的表现却不及某些规模较小的模型。DeepSeek-V3在AIME 2024评测中达到了39.2%的Pass1准确率&#xff0c;在SWE-bench Ve…

Electron使用WebAssembly实现CRC-32 常用标准校验

Electron使用WebAssembly实现CRC-32 常用标准校验 将C/C语言代码&#xff0c;经由WebAssembly编译为库函数&#xff0c;可以在JS语言环境进行调用。这里介绍在Electron工具环境使用WebAssembly调用CRC-32 常用标准格式校验的方式。 CRC-32 常用标准校验函数WebAssembly源文件…

MySQL数据库的相关语句

数据库的操作&#xff08;CURD&#xff09; 创建数据库&#xff08;重点&#xff09; 查看数据库&#xff08;重点&#xff09; show databases; ‐‐ 查看所有的数据库use 数据库名称;(*****) ‐‐ 使用数据库show create database 数据库名称; ‐‐ 查询数据库的创建的信息s…

Git的命令学习——适用小白版

浅要了解一下Git是什么&#xff1a; Git是目前世界上最先进的的分布式控制系统。Git 和其他版本控制系统的主要差别在于&#xff0c;Git 只关心文件数据的整体是否发生变化&#xff0c;而大多数其他系统则只关心文件内容的具体差异。Git 并不保存这些前后变化的差异数据。实际上…

充电桩快速搭建springcloud(微服务)+前后端分离(vue),客户端实现微信小程序+ios+app使用uniapp(一处编写,处处编译)

充电桩管理系统是专为中小型充电桩运营商、企业和个人开发者设计的一套高效、灵活的管理平台。系统基于Spring Cloud微服务架构开发&#xff0c;采用模块化设计&#xff0c;支持单机部署与集群部署&#xff0c;能够根据业务需求动态扩展。系统前端使用uniapp框架&#xff0c;可…

Unity光照之Halo组件

简介 Halo 组件 是一种用于在游戏中创建光晕效果的工具&#xff0c;主要用于模拟光源周围的发光区域&#xff08;如太阳、灯泡等&#xff09;或物体表面的光线反射扩散效果。 核心功能 1.光晕生成 Halo 组件会在光源或物体的周围生成一个圆形光晕&#xff0c;模拟光线在空气…

【cocos creator】热更新

一、介绍 试了官方的热更新功能&#xff0c;总结一下 主要用于安卓包热更新 参考&#xff1a; Cocos Creator 2.2.2 热更新简易教程 基于cocos creator2.4.x的热更笔记 二、使用软件 1、cocos creator v2.4.10 2、creator热更新插件&#xff1a;热更新manifest生成工具&…

深度评测阿里云操作系统控制台:功能全面,体验卓越!

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 阿里云操作系统控制台 操作系统控制台操作系统实践体验服务的开通创建ESC实例组件管理功能体验&#xff1a;节点健康系统诊断系统观测订阅管…

Spring Boot 解析 LocalDateTime 失败?Uniapp 传输时间变 1970 的原因与解决方案

目录 前言1. 问题分析2. 时间戳&#xff08;推荐&#xff0c;可尝试&#xff09;3. 使用 JsonDeserialize & JsonSerialize&#xff08;中立&#xff09;4. 前端传 ISO-8601 格式&#xff08;不推荐&#xff0c;可尝试&#xff09;5. 用 String&#xff08;中立&#xff09…

【vitepress】如何搭建并部署自己的博客网站

文章目录 新的改变旧的github.io地址,现在不用更新netlify托管之后为这个 一 如何搭建[1]:安装vitepress初始化Vitepress启动项目 二 如何部署[2]视频教程 [3] 新的改变 旧的github.io地址,现在不用 https://dl-hx.github.io/myBlog/ 更新netlify托管之后为这个 https://dl…

Cursor新版0.47.x发布

0.47.x - 可靠性、键盘快捷键与提前体验选项功能 本次更新主要聚焦于稳定性和性能改进&#xff0c;以确保现有功能更好地运行。 新功能与改进 键盘快捷键&#xff1a;所有键盘快捷键现在都可以在键盘快捷键菜单中找到。前往 设置 > 键盘快捷键 来修改或添加新的快捷键。 …

docker 小记

一、卸载 查看当前版本 docker -v2. 如果有&#xff0c;先停止docker systemctl stop docker如果是yum安装&#xff0c;卸载方式为 #已防版本冲突&#xff0c;直接卸载 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-lat…

XGBoost介绍

XGBoost&#xff1a;是eXtreme Gradient Boosting(极端梯度提升)的缩写&#xff0c;是一种强大的集成学习(ensemble learning)算法&#xff0c;旨在提高效率、速度和高性能。XGBoost是梯度提升(Gradient Boosting)的优化实现。集成学习将多个弱模型组合起来&#xff0c;形成一个…

Aliyun CTF 2025 web ezoj

文章目录 ezoj ezoj 进来一看是算法题&#xff0c;先做了试试看,gpt写了一个高效代码通过了 通过后没看见啥&#xff0c;根据页面底部提示去/source看到源代码&#xff0c;没啥思路&#xff0c;直接看wp吧&#xff0c;跟算法题没啥关系,关键是去看源码 def audit_checker(even…

大数据hadoop课程笔记

1.课程导入 柯洁 Alpha Go是人工智能领域的里程碑。 深度学习 大模型deepseek chatgpt 大模型 和 大数据 之间有着非常紧密的关系。可以说&#xff0c;大数据是大模型发展的基石&#xff0c;而大模型是大数据价值挖掘的重要工具。 https://youtu.be/nN-VacxHUH8?sifj7Ltk…

Pandas数据清洗实战之清洗猫眼电影

本次案例所需要用到的模块 pandas(文件读取保存 操作表格的模块) 将上次Scrapy爬取下来的文件 做个数据清洗 变成我们想要的数据 确定目的&#xff1a;将此文件中的duration字段中的分钟 和publisher_time上映去掉 只保留纯数值 数据清洗题目如下: 修复 publish_time列中的错…

UDP-网络编程/socket编程

一&#xff0c;socket相关接口 1&#xff0c;socket 我们来介绍socket编程的第一个接口&#xff1a;socket&#xff0c;它需要用到的头文件如图&#xff1a; 其中domain表示域或者协议家族&#xff1a; 本次我就用AF_INET&#xff08;ipv4&#xff09;来做演示 type参数表示…

《人月神话》:软件工程的成本寓言与生存法则

1975年&#xff0c;Fred Brooks在《人月神话》中写下那句振聋发聩的断言——“向进度落后的项目增加人力&#xff0c;只会让进度更加落后”——时&#xff0c;他或许未曾料到&#xff0c;这一观点会在半个世纪后的人工智能与云原生时代&#xff0c;依然如达摩克利斯之剑般悬在每…

ROS云课基础题库-01C++案例-甜甜圈

效率是核心&#xff0c;但效率高的教程会忽略掉非常多的细节。 解决问题的思路和细节对于一个问题的有效求解至关重要。 资料 云课五分钟-02第一个代码复现-终端甜甜圈C-CSDN博客 从云课五分钟到五秒钟焦虑的甜甜圈向前冲-CSDN博客 说明 复现重要性没有那么大&#xff0c;…

Oracle RHEL 5.8 安装 - 呆瓜式

前言 Red Hat Enterprise Linux Server release 5.8 为企业级 SO 镜像。绝大部分企业如果使用Oracle数据库均会使用其企业版 OS &#xff0c;能够很好的支持数据库的运行 文档目的 当前文档仅针对 VMware Workstation Pro 进行 OS 介质安装。 镜像下载地址 注意&#xff1…