当前位置: 首页 > article >正文

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

相关文章:

clickhouse集群部署保姆级教程

ClickHouse安装 版本要求 23.8及之后的版本 硬件要求 三台机器 建议配置 磁盘 ssd 500G内存 32gcpu 16c 最低配置 磁盘 机械硬盘 50G内存 4gcpu 4c 容量规划 一亿条数据大约使用1TB磁盘容量 参考官方容量推荐 安装包准备 zookeeper安装 zookeeper需要java启动&…...

驾培市场与低空经济无人机融合技术详解

随着科技的飞速发展和社会的不断进步&#xff0c;驾培市场正面临着前所未有的变革。传统汽车驾驶培训已不再是唯一的选择&#xff0c;无人机驾驶等新兴领域正逐渐成为驾培市场的重要组成部分。本报告旨在探讨驾培市场与低空经济的融合发展&#xff0c;特别是应用型人才培养与驾…...

pandas-基础(数据结构及文件访问)

1 Pandas的数据结构 1.1 Series 特点&#xff1a;一维的数据型对象&#xff0c;包含一个值序列和数据标签(即索引&#xff09; 创建Series&#xff1a; pandas.Series(dataNone, indexNone, dtypeNone, nameNone, copyFalse, fastpathFalse) 参数说明&#xff1a; data&a…...

简单记录一下Oracle数据库与mysql数据库注入的不同。

Oracle数据库的注入比mysql较复制。 一确定注入点&#xff1a;与mysql一样。 and 11 -- #文章有出现. and 12 -- #文章不见了。 二。确定列数。 ’order by 1&#xff0c;2 -- #没问题 order by 1,2,3 -- #保错&#xff0c;所以有两列。 三&#xff0c;所有uni…...

前端小食堂 | Day11 - Vue.js の烹饪秘籍

&#x1f3a8; 今日主菜&#xff1a;Vue 常用技巧全家桶 1. 响应式烹饪秘籍 <script setup> // &#x1f373; 精准控制响应式 const counter ref(0); // 基本类型用ref const user reactive({ name: 小明, age: 18 }); // 对象用reactive // &#x1f525; 自…...

如何将本地已有的仓库上传到gitee (使用UGit)

1、登录Gitee。 2、点击个人头像旁边的加号&#xff0c;选择新建仓库&#xff1a; 3、填写仓库相关信息 4、复制Gitee仓库的地址 5、绑定我们的本地仓库与远程仓库 6、将本地仓库发布&#xff08;推送&#xff09;到远程仓库&#xff1a; 注意到此处报错&#xff…...

多方安全计算(MPC)电子拍卖系统

目录 一、前言二、多方安全计算(MPC)与电子拍卖系统概述2.1 多方安全计算(MPC)的基本概念2.2 电子拍卖系统背景与需求三、MPC电子拍卖系统设计原理3.1 系统总体架构3.2 电子拍卖中的安全协议3.3 数学与算法证明四、数据加解密模块设计五、GPU加速与系统性能优化六、GUI设计与系…...

Day04 模拟原生开发app过程 Androidstudio+逍遥模拟器

1、用Androidstudio打开已经写好了的music项目 2、逍遥模拟器打开apk后缀文件 3、在源文件搜索关键字 以后的测试中做资产收集...

C# Channel

核心概念创建Channel无界通道有界通道FullMode选项 生产者-消费者模式生产者写入数据消费者读取数据 完整示例高级配置优化选项&#xff1a;取消操作&#xff1a;通过 CancellationToken 取消读写。 错误处理适用场景Channel的类型创建Channel写入和读取消息使用场景示例代码注…...

17网商品列表的HTML结构是怎样的?

根据搜索结果&#xff0c;目前没有直接提供17网&#xff08;17zwd&#xff09;商品列表的HTML结构的详细信息。不过&#xff0c;我们可以根据一般的电商网站结构进行推测&#xff0c;并结合已有的爬虫代码示例来分析可能的HTML结构。 17网商品列表的HTML结构推测 一般来说&am…...

若依ry-vue分离板(完整版)前后端部署

目录 1.目标 2.准备工作 3.源码下载 4.整理前后端目录 5.先部署后端 &#xff08;1&#xff09;导入数据库 &#xff08;2&#xff09;改代码数据库配置 &#xff08;3&#xff09;运行redis &#xff08;4&#xff09;运行执行文件 &#xff08;5&#xff09;后端启…...

【YOLOv8】YOLOv8改进系列(5)----替换主干网络之EfficientFormerV2

主页&#xff1a;HABUO&#x1f341;主页&#xff1a;HABUO &#x1f341;YOLOv8入门改进专栏&#x1f341; &#x1f341;如果再也不能见到你&#xff0c;祝你早安&#xff0c;午安&#xff0c;晚安&#x1f341; 【YOLOv8改进系列】&#xff1a; 【YOLOv8】YOLOv8结构解读…...

深入理解 HTML 文本格式化

在网页开发中&#xff0c;HTML 文本格式化是一项基础且关键的技能。通过合理运用 HTML 格式化标签&#xff0c;我们能够让网页上的文本以丰富多样的形式呈现&#xff0c;从而提升用户体验。本文将详细介绍 HTML 文本格式化的相关知识。​ 一、HTML 文本格式化基础​ 加粗文本…...

时序和延时

1、延迟模型的类型 verilog有三种类型的延迟模型&#xff1a;分布延迟 、 集总延迟 、 路径延迟&#xff08;pin to pin&#xff09; 1.1、 分布延迟 分布延迟是在每个独立元件的基础上进行定义的。 module M(output wire out ,input wire a …...

北大一二三四版全套DeepSeek教学资料

DeepSeek学习资料合集&#xff1a;https://pan.quark.cn/s/bb6ebf0e9b4d DeepSeek实操变现指南&#xff1a;https://pan.quark.cn/s/76328991eaa2 你是否渴望深入探索人工智能的前沿领域&#xff1f;是否在寻找一份能引领你从理论到实践&#xff0c;全面掌握AI核心技术的学习…...

垃圾收集算法与收集器

在 JVM 中&#xff0c;垃圾收集&#xff08;Garbage Collection, GC&#xff09;算法的核心目标是自动回收无用对象的内存&#xff0c;同时尽量减少对应用性能的影响。以下是 JVM 中主要垃圾收集算法的原理、流程及实际应用场景的详细介绍&#xff1a; 一、标记-清除算法&#…...

【大模型】WPS 接入 DeepSeek-R1详解,打造全能AI办公助手

目录 一、前言 二、WPS接入AI工具优势​​​​​​​ 三、WPS接入AI工具两种方式 3.1 手动配置的方式 3.2 Office AI助手 四、WPS手动配置方式接入AI大模型 4.1 安装VBA插件 4.1.1 下载VBA插件并安装 4.2 配置WPS 4.3 WPS集成VB 4.4 AI助手效果测试 4.5 配置模板文…...

STM32步进电机驱动全解析(上) | 零基础入门STM32第五十七步

主题内容教学目的/扩展视频步进电机电路原理&#xff0c;跳线设置&#xff0c;驱动程序&#xff0c;调用控制。熟悉驱动程序&#xff0c;能调用控制。 师从洋桃电子&#xff0c;杜洋老师 &#x1f4d1;文章目录 一、步进电机核心原理图解二、核心特性与优势三、关键驱动方式对比…...

Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘(上)

在 Spring Boot 生态中&#xff0c;dynamic-datasource-spring-boot-starter 是一个非常实用的组件&#xff0c;它为我们在多数据源场景下提供了便捷的解决方案。在上一篇文章《一分钟上手&#xff1a;如何创建你的第一个 Spring Boot Starter》中&#xff0c;我们学习了如何创…...

[NewStarCTF 2023 公开赛道]ez_sql1 【sqlmap使用/大小写绕过】

题目&#xff1a; 发现id处可以sql注入&#xff1a; 虽然输入id1;show databases;#没什么回显&#xff0c;但是知道这里是字符型注入了 这次利用sqlmap注入 --dbs&#xff1a;列出所有数据库名字 python .\sqlmap.py -u http://a40b2f0a-823f-4c99-b43c-08b94ed0abb2.node5.…...

【商城实战(18)】后台管理系统基础搭建:从0到1构建电商中枢

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…...

新能源汽车充电综合解决方案:安科瑞电气助力绿色出行

安科瑞 华楠 18706163979 随着新能源汽车的迅猛发展&#xff0c;充电基础设施的建设成为了推动行业进步的关键。然而&#xff0c;充电技术滞后、运营效率低下、车桩比失衡等问题&#xff0c;依然困扰着广大车主和运营商。今天&#xff0c;我们要为大家介绍一款新能源汽车充电…...

蓝桥杯java-B组真题—动态规划

目录 一.什么是动态规划? 二.题目 第一种情况:集合本身之和为奇数 第二种情况:集合本身之和为偶数 下面是代码实现: 一.什么是动态规划? 这里就简单的解释一下&#xff0c;动态规划就是记录之前的计算结果&#xff0c;避免重复的计算之前已经计算过的结果&#xff0c;用…...

【网络编程】事件选择模型

十、基于I/O模型的网络开发 10.9 事件选择模型 10.0.1 基本概念 事件选择(WSAEventSelect) 模型是另一个有用的异步 I/O 模型。和 WSAAsyncSelect 模 型类似的是&#xff0c;它也允许应用程序在一个或多个套接字上接收以事件为基础的网络事件通知&#xff0c;最 主要的差别在…...

网易邮箱如何用大数据任务调度实现海量邮件数据处理?Apache DolphinScheduler用户交流会上来揭秘!

你是否对大数据领域的前沿应用充满好奇&#xff1f;网易邮箱作为互联网大厂网易的重要业务线&#xff0c;在大数据应用方面有着诸多值得借鉴的实践经验。你是否渴望深入了解网易邮箱如何借助 Apache DolphinScheduler 实现海量邮件数据处理、用户行为分析、实时监控等核心业务场…...

前端知识点---路由模式-实例模式和单例模式(ts)

在 ArkTS&#xff08;Ark UI 框架&#xff09;中&#xff0c;路由实例模式&#xff08;Standard Instance Mode&#xff09;主要用于管理页面跳转。当创建一个新页面时&#xff0c;可以选择标准实例模式&#xff08;Standard Mode&#xff09;或单实例模式&#xff08;Single M…...

固定表头、首列 —— uniapp、vue 项目

项目实地&#xff1a;也可以在 【微信小程序】搜索体验&#xff1a;xny.handbook 另一个体验项目&#xff1a;官网 一、效果展示 二、代码展示 &#xff08;1&#xff09;html 部分 <view class"table"><view class"tr"><view class&quo…...

langchain系列(九)- LangGraph 子图详解

目录 一、导读 二、原理说明 1、简介 2、子图图示 3、使用说明 三、基础代码实现 1、实现功能 2、Graph 图示 3、代码实现 4、输出 5、分析 四、人机交互 1、实现中断 2、历史状态&#xff08;父图&#xff09; 3、历史状态&#xff08;子图&#xff09; 4、历史…...

搜索引擎是如何理解你的查询并提供精准结果的?

目录 一、搜索引擎简单介绍 二、搜索引擎整体架构和工作过程 &#xff08;一&#xff09;整体分析 &#xff08;二&#xff09;爬虫系统 三个基本点 爬虫系统的工作流程 关键考虑因素和挑战 &#xff08;三&#xff09;索引系统 网页处理阶段 预处理阶段 反作弊分析…...

【前端】【组件】【vue2】封装一个vue2的ECharts组件,不用借助vue-echarts

在Vue2项目中使用ECharts 5.6的完整实现步骤如下&#xff1a; 安装依赖 npm install echarts5.6.2 --save # 指定安装5.x最新版本基础组件实现&#xff08;新建components/ECharts.vue&#xff09; <template><div ref"chartDom" class"echarts-co…...