【德哥说库系列】-Clickhouse集群部署(3分片2副本)

news2024/11/20 14:36:48

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.环境准备
    • 📣 2.系统部署JDK
    • 📣 3.zookeeper集群部署
      • ✨ 3.1 解压安装
      • ✨ 3.2 环境变量
      • ✨ 3.3 集群配置
      • ✨ 3.4 启动zookeeper
    • 📣 4.ClickHouse集群部署
      • ✨ 4.1 安装前准备
      • ✨ 4.2 RPM包安装
      • ✨ 4.3 修改配置文件
      • ✨ 4.4. 启动集群

前言

近期大数据平台在选型分布式数据库,本文详细讲解了Clickhouse集群部署(3分片2副本)

📣 1.环境准备

操作系统选择:CentOS7.8 x64,搭建一个3分片2副本Clickhouse集群
本次部署6台服务器,生产上推荐每台配置如下:
内存:64G+ CPU:32core+ 硬盘500G+
–ClickHouse的主要应用场景:
电信行业用于存储数据和统计数据使用
用户行为数据记录与分析
信息安全日志分析
商业智能与广告网络价值数据挖掘分析
网络游戏以及物联网的数据处理与分析

在这里插入图片描述

节点Hostnameip地址分片
1clickhouse1172.18.12.2片1
2clickhouse2172.18.12.3片1
3clickhouse3172.18.12.4片2
4clickhouse4172.18.12.5片2
5clickhouse5172.18.12.6片3
6clickhouse6172.18.12.7片3

📣 2.系统部署JDK

##在所有节点均部署
1.下载Linux环境下的jdk1.8
https://www.oracle.com/java/technologies/downloads/#java8
2.rpm安装
[root@clickhouse1 /]# rpm -ivh jdk-8u381-linux-x64.rpm
warning: jdk-8u381-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ad986da3: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:jdk-1.8-2000:1.8.0_381-9 ################################# [100%]
–安装好后通常默认安装是在/usr/java目录下
[root@clickhouse1 ~]# cd /usr/java
[root@clickhouse1 java]# ll
total 0
lrwxrwxrwx. 1 root root 16 Oct 5 11:12 default -> /usr/java/latest
lrwxrwxrwx. 1 root root 31 Oct 5 11:12 jdk1.8.0-x64 -> /usr/lib/jvm/jdk-1.8-oracle-x64
lrwxrwxrwx. 1 root root 31 Oct 5 11:12 latest -> /usr/lib/jvm/jdk-1.8-oracle-x64
–编辑/etc/profile
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0-x64
export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
–变量重新生效
source /etc/profile
3.确认安装是否成功
[root@clickhouse1 /]# java -version
java version “1.8.0_381”
Java™ SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot™ 64-Bit Server VM (build 25.381-b09, mixed mode)

📣 3.zookeeper集群部署

直接从这个网址下载即可:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
安装前注意事项:
1)zookeeper节点必须是奇数个,因为zookeeper选举的规则:leader选举,要求可用节点数量必须大于总节点数量/2
2)zookeeper 是使用 java 来运行的,所以需要依赖 JDK,所以安装 zookeeper 之前需要安装部署 JDK
3) 注意关闭节点服务器的防火墙
这里要注意!!!官网上有两个tar.gz文件,bin名称结尾的包就是我们要下载的,可以直接使用。里面有编译好的二进制包,上一个普通的tar.gz包只包含源码,不能直接使用。
在这里我们下载的是3.8.2版本
仅在clickhouse1,clickhouse3,clickhouse5 上面部署即可

✨ 3.1 解压安装

tar -zxvf apache-zookeeper-3.8.2-bin.tar.gz
mv apache-zookeeper-3.8.2-bin /usr/local/zookeeper

✨ 3.2 环境变量

添加我们需要的配置信息,ZOOKEEPER_HOME 为你安装的zookeeper目录
vi /etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
##使环境变量生效
source /etc/profile
##查看是否生效
echo $ZOOKEEPER_HOME

✨ 3.3 集群配置

1)创建相关目录
mkdir -p /usr/local/zookeeper/data
mkdir -p /usr/local/zookeeper/log
2)zookeeper配置文件
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg 

vi zoo.cfg
##修改以下内容
# 心跳时间
tickTime=2000
# follow连接leader的初始化连接时间,表示tickTime的倍数
initLimit=10
# syncLimit配置表示leader与follower之间发送消息,请求和应答时间长度。
如果followe在设置的时间内不能与leader进行通信,那么此follower将被丢弃,tickTime的倍数
syncLimit=5
# 客户端连接端口
clientPort=2181
# 节点数据存储目录,需要提前创建,注意myid添加,用于标识服务器节点
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
server.1=172.18.12.2:2888:3888
server.3=172.18.12.4:2888:3888
server.5=172.18.12.6:2888:3888

3)每台机器配置节点id
##每台机器分别执行
在机器1上执行:
echo 1 >/usr/local/zookeeper/data/myid

在机器3上执行:
echo 3 >/usr/local/zookeeper/data/myid

在机器5上执行:
echo 5 >/usr/local/zookeeper/data/myid

✨ 3.4 启动zookeeper

##启动zookeeper,在这里我们可以只启动节点1、节点3、节点5,或者5个节点启动都行
cd /usr/local/zookeeper/bin/
./zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/…/conf/zoo.cfg
Starting zookeeper … STARTED
##查看zookeeper启动状态
sh zkServer.sh status
##验证zookeeper
启动成功后可以随便选择一个节点尝试连接另一个节点验证
sh zkCli.sh -server 172.18.12.2:2181
成功进入后显示:
[zk: 172.18.12.2:2181(CONNECTED) 0]

📣 4.ClickHouse集群部署

✨ 4.1 安装前准备

1)指令集检查
ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行。
官方预构建的二进制文件通常针对x86_64进行编译,并利用SSE 4.2指令集。
检查当前CPU是否支持SSE 4.2的命令:
[root@clickhouse1 /]# grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
SSE 4.2 supported

2)文件数限制修改
调整CentOS系统对打开文件数的限制,在/etc/security/limits.conf和/etc/security/limits.d/20-nproc.conf文件的末尾加上
soft nofile 65536
hard nofile 65536
soft nproc 131072
hard nproc 131072


cat >> /etc/security/limits.conf <<EOF
soft nofile 65536
hard nofile 65536
soft nproc 131072
hard nproc 131072
EOF

cat >> /etc/security/limits.d/20-nproc.conf <<EOF
soft nofile 65536
hard nofile 65536
soft nproc 131072
hard nproc 131072
EOF

✨ 4.2 RPM包安装

推荐使用CentOS、RedHat和所有其他基于rpm的Linux发行版的官方预编译rpm包。
##安装依赖
yum install -y yum-utils
yum install -y libtool
yum install -y unixODBC
##上传下载好的rpm包安装即可
rpm -ivh clickhouse-common-static-23.9.1.1854.x86_64.rpm
rpm -ivh clickhouse-client-23.9.1.1854.x86_64.rpm
rpm -ivh clickhouse-server-23.9.1.1854.x86_64.rpm

✨ 4.3 修改配置文件

ClickHouse提供了非常高级的基于zookeeper的表复制方式,同时也提供了基于Cluster的复制方式,本次我们使用表复制方式,所有节点均作相同的设置

## 修改config.xml
cd /etc/clickhouse-server/
vim config.xml

1)配置 listen_host
更改监听让所有正常ip可连接
<listen_host>0.0.0.0</listen_host>

2)配置zookeeper
host改成你自己的zookeeper 内网ip地址

<zookeeper>
        <node index="1">
            <host>172.18.12.2</host>
            <port>2181</port>
        </node>
        <node index="3">
            <host>172.18.12.4</host>
            <port>2181</port>
        </node>
        <node index="5">
            <host>172.18.12.6</host>
            <port>2181</port>
        </node>
</zookeeper>

3)密码设置
vi users.xml

-----
<password>ck123.com</password>
<networks>
	<ip>::/0</ip>
</networks>
-----


4)配置 remote_server
<remote_servers>
        <!--ck_cluster是集群名字,自己命名就可以,建库建表需要用到-->
        <ck_cluster> 
            <!-- 数据分片1  -->
            <shard>
                <weight>1</weight>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>172.18.12.2</host>
                    <port>9000</port>
                    <user>default</user>
					<password>ck123.com</password>
                </replica>
                <replica>
                    <host>172.18.12.3</host>
                    <port>9000</port>
                    <user>default</user>
					<password>ck123.com</password>
                </replica>
            </shard>
            <!-- 数据分片2  -->
            <shard>
            		<weight>1</weight>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>172.18.12.4</host>
                    <port>9000</port>
                    <user>default</user>
					<password>ck123.com</password>
                </replica>
                <replica>
                    <host>172.18.12.5</host>
                    <port>9000</port>
                    <user>default</user>
					<password>ck123.com</password>
                </replica>
            </shard>
            <!-- 数据分片3  -->
            <shard>
                 <weight>1</weight>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>172.18.12.6</host>
                    <port>9000</port>
                    <user>default</user>
					<password>ck123.com</password>
                </replica>
                <replica>
                    <host>172.18.12.7</host>
                    <port>9000</port>
                    <user>default</user>
					<password>ck123.com</password>
                </replica>
            </shard>
        </ck_cluster>
</remote_servers>


5)配置macros

根据每台机器的分片副本配置,如第3分片的第1副本这样配置,每个服务器配置不相同
<macros>
        <layer>02</layer>
        <shard>03</shard>
        <replica>172.18.12.6</replica>
</macros>

✨ 4.4. 启动集群

yum install sudo
[root@clickhouse1 ~]# /etc/init.d/clickhouse-server start

/etc/init.d/clickhouse-server status
[root@clickhouse1 ~]# /etc/init.d/clickhouse-server status

在这里插入图片描述

–验证集群状
[root@clickhouse1 ~]# clickhouse-client
clickhouse1 ) select * from system.clusters;
clickhouse1 ) select cluster,host_name from system.clusters;
clickhouse1 ) select * from system.macros;

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络安全-信息收集】网络安全之信息收集和信息收集工具讲解(提供工具)

工具下载百度网盘链接(包含所有用到的工具&#xff09;&#xff1a; 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.…

Cocos Creator3.8 项目实战(六)Combobox控件的实现和使用

在cocoscreator 中&#xff0c;没有Combobox控件&#xff0c;无奈之下只能自己动手写一个。 ⚠️ 文末附 ComboBox.ts 、ComboBoxItem.ts 完整源码&#xff0c; 可直接拿去使用。 实现原理&#xff1a; 1、Combobox 背景图background 是一个sprite 控件&#xff0c;上面放了一…

Python基本功

任何工作&#xff0c;没别的&#xff0c;就是苦练基本功&#xff0c;在篮球场上&#xff0c;我常用非常简单的基本功就可以克敌制胜&#xff0c;工作中也是如此 字符串 1&#xff1a;字符串拼接 a"人民" b123 print("我是"a""str(b))2&#x…

c语言 任意进制数的转换

/* 函数trans将无符号整数n翻译成d&#xff08;2<&#xff1d;d<&#xff1d;16&#xff09;进制表示的字符串s */ #define M sizeof(unsigned int)*8 int trans(unsigned n, int d, char s[]) {static char digits[] "0123456789ABCDEF"; /* 十六进制数字的字…

数据中台实战(06)-数据模型无法复用,归根结底还是设计问题

指标比喻成一棵树的果实&#xff0c;模型就是这棵大树的躯干&#xff0c;想果实好&#xff0c;须让树干粗壮。 1 痛点 分析师一般结合业务做数分&#xff08;需用大量数据&#xff09;&#xff0c;通过报表服务于业务部门运营。但数据中台构建前&#xff0c;分析师经常发现自…

SNP Glue:SAP数据导入到其他系统的多种方式

SAP是一款功能强大的企业资源计划&#xff08;ERP&#xff09;软件&#xff0c;许多企业依赖SAP来管理和处理其核心业务数据。然而&#xff0c;有时候企业需要将SAP中的数据导入到其他系统中&#xff0c;以实现更广泛的数据共享和集成&#xff0c;便于企业实现数据智能。本文将…

IDEA添加Vue文件模板

代码模板&#xff1a; <!-- *${COMPONENT_NAME} *author niemengshi *date ${DATE} ${TIME} --> <template> #[[$END$]]# </template> <script> export default { name: "${COMPONENT_NAME}", props: { }, components: {}, mounted: {}, d…

战火使命ssr排名,战火使命角色强度排行

在战火使命中&#xff0c;很多玩家都在关注SSR角色的强度排行&#xff0c;那么&#xff0c;下面就为大家分享一下小编整理的最新战火使命ssr排名&#xff0c;一起来看看吧。 关注【娱乐天梯】&#xff0c;获取内部福利号 一、SSR角色排名榜&#xff1a; 1. 克拉拉、艾蕾娜、杰西…

C++深入学习part_1

Linux下编译C程序 安装g命令&#xff1a;sudo apt install g 编译命令&#xff1a;$ g *.cc 或者 *.cpp -o fileName; hellworld 编译程序可以看到&#xff1a; namespace命名空间 首先&#xff0c;命名空间的提出是为了防止变量重名冲突而设置的。 浅浅试一下&#xff1…

2023年【高处安装、维护、拆除】考试题及高处安装、维护、拆除最新解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 高处安装、维护、拆除考试题考前必练&#xff01;安全生产模拟考试一点通每个月更新高处安装、维护、拆除最新解析题目及答案&#xff01;多做几遍&#xff0c;其实通过高处安装、维护、拆除考试资料很简单。 1、【单…

OpenCV C++ Look Up Table(查找表)

OpenCV C Look Up Table&#xff08;查找表&#xff09; 引言 在图像处理和计算机视觉中&#xff0c;查找表&#xff08;Look Up Table, LUT&#xff09;是一种非常高效和实用的方法&#xff0c;用于快速地映射或更改图像的颜色和像素值。LUT 能够极大地提高图像处理算法的执…

XSS CSRF

XSS & CSRF xss&#xff1a;跨站脚本攻击&#xff1a;注入一些非法的脚本 csrf&#xff1a;冒充身份 XSS 反射型 /welcome&#xff1a;res.send(req.query.type) 输入什么就输出什么&#xff08;httpOnly:false&#xff0c;但不是解决方案&#xff09; 比如&#xff1a;?&…

【C语言|关键字】C语言32个关键字详解

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

不断优化的素数算法

前言&#xff1a;素数判断是算法中重要的一环&#xff0c;掌握优秀的素数判断方法是算法player的必修课。本文介绍的是由简到繁的素数算法&#xff0c;便于初学者从入门到精通。 素数&#xff08;质数&#xff09;&#xff1a;只能被 1 和它本身整除的数称作素数&#xff0c;如…

【Linux学习】05-2Linux上部署项目

Linux&#xff08;B站黑马&#xff09;学习笔记 01Linux初识与安装 02Linux基础命令 03Linux用户和权限 04Linux实用操作 05-1Linux上安装部署各类软件 05-2Linux上部署项目 文章目录 Linux&#xff08;B站黑马&#xff09;学习笔记前言05-2Linux上部署项目部署Springboot项目…

【AI视野·今日Sound 声学论文速览 第二十期】Fri, 6 Oct 2023

AI视野今日CS.Sound 声学论文速览 Fri, 6 Oct 2023 Totally 6 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Deep Generative Models of Music Expectation Authors Ninon Liz Masclef, T. Anderson Keller对音乐的情感反应的一个重要理论围绕着惊喜…

时间序列常用数据处理

1.组合技巧Compose 1.2 实例应用及其解释 # 用于组合多个数据处理方法 class Compose(object):def __init__(self, transforms):self.transforms transformsdef __call__(self, seq):for t in self.transforms:seq t(seq)return seq 这段Python代码定义了一个名为Compose的…

星火大模型AI接口Spring中项目中使用【星火、AIGC】

星火大模型AI接口使用 讯飞的星火大模型是有免费版本赠送200万个Token&#xff0c;就个人学习来说完全够用了。 免费申请过后&#xff0c;到控制台&#xff0c;两个红色方框是最要紧的。 星火认知大模型Web文档 | 讯飞开放平台文档中心 (xfyun.cn)这是官方文档对于接口的详细使…

【AI视野·今日NLP 自然语言处理论文速览 四十九期】Fri, 6 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Fri, 6 Oct 2023 Totally 44 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers MathCoder: Seamless Code Integration in LLMs for Enhanced Mathematical Reasoning Authors Ke Wang, Houxi…

如何一键转发朋友圈,快速跟圈?

你是否曾为在微信上快速转发别人的朋友圈而烦恼&#xff1f;每天都要花费大量时间下载商品图片和复制粘贴商家的文案&#xff0c;让人疲惫不堪。我觉得这样太繁琐太麻烦了&#xff0c;每天都会上新货&#xff0c;上传朋友圈都要花将近一个小时的时间&#xff0c;花了大量时间在…