ClickHouse分布式集群部署

目录

​编辑

一、环境说明

二、安装部署

2.1 RPM方式安装

2.1.1 安装yum-utils

2.1.2 配置yum repo源

2.1.3 yum install 下载安装clickhouse

2.2 信息配置

2.2.1 配置外网可访问地址

2.2.2 修改存储路径

2.2.2.1 新建存储目录

2.2.2.2 授权

2.2.2.3 修改配置

2.2.3 修改服务端口

2.2.4 修改配置文件目录

2.2.5 配置metrika.xml文件

2.2.5.1 创建metrika.xml文件

2.2.5.2 添加配置信息

2.2.5.3 配置说明

2.3 启动服务

2.4 检查集群配置是否完成

2.4.1 登录clickehouse

2.4.2 查询集群信息


一、环境说明

系统环境描述:本教程基于CentOS 8.0版本虚拟机

ClickHose集群规划:

节点ClickHouse-serverClickHouse-clientzookeeperIP
master192.168.31.215
node1192.168.31.8
node2***192.168.31.9
node3**192.168.31.167
node4**192.168.31.154

软件版本说明:

ClickHouse     23.8.2.7
jdk    1.8.0_211
zookeeper    3.8.2

提示:本次部署需要的zookeeper,我使用的是Hadoop集群中的,关于zookeeper的部署,这里不做描述。

二、安装部署

按照ClickHouse 官网文档说明显示,ClickHouse 的安装可有RPM安装包安装、Tgz安装包安装、DEB安装包安装、Docker安装包安装、使用源码安装等方式,本次我们使用RPM安装包方式安装

2.1 RPM方式安装

2.1.1 安装yum-utils

sudo yum install -y yum-utils

2.1.2 配置yum repo源

sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo

2.1.3 yum install 下载安装clickhouse

sudo yum install -y clickhouse-server clickhouse-client

2.2 信息配置

2.2.1 配置外网可访问地址

分别在node2、node3、node4节点的/etc/clickhouse-server/config.xml文件下,<listen_host>标签,如下:

<listen_host>0.0.0.0</listen_host>

配置成所有地址可访问

2.2.2 修改存储路径

2.2.2.1 新建存储目录
mkdir  -pv /opt/clickhouse/{data,tmp}
2.2.2.2 授权
chown  -R  clickhouse:clickhouse /opt/clickhouse/

提示:这里需要授权下新建的目录,不然可能会导致服务启动异常

2.2.2.3 修改配置
<!-- Path to data directory, with trailing slash. -->
<path>/opt/clickhouse/data/</path>  <!-- 修改存储路径 --><!-- Path to temporary data for processing hard queries. -->
<tmp_path>/opt/clickhouse/tmp/</tmp_path>  

2.2.3 修改服务端口

查询下文件里面的默认端口:9000,替换成7000,我这里修改是因为9000端口和我的hadoop集群端口冲突了,如果没有端口冲突,可忽略。
<tcp_port>7000</tcp_port>

2.2.4 修改配置文件目录

<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
<zookeeper incl="zookeeper-servers" optional="false" />

2.2.5 配置metrika.xml文件

2.2.5.1 创建metrika.xml文件

分别在node2、node3、node4节点/etc/clickhouse-server/config.d/目录下创建metrika.xml文件

touch metrika.xml
2.2.5.2 添加配置信息

vim metrika.xml

添加如下配置信息:

<yandex><remote_servers><clickhouse_cluster_3shards_1replicas><shard><internal_replication>true</internal_replication><replica><host>node2</host><port>7000</port></replica></shard><shard><replica><internal_replication>true</internal_replication><host>node3</host><port>7000</port></replica></shard><shard><internal_replication>true</internal_replication><replica><host>node4</host><port>7000</port></replica></shard></clickhouse_cluster_3shards_1replicas></remote_servers><zookeeper-servers><node index="1"><host>node2</host><port>2181</port></node><node index="2"><host>node3</host><port>2181</port></node><node index="3"><host>node4</host><port>2181</port></node></zookeeper-servers><macros><replica>01</replica></macros><networks><ip>::/0</ip></networks><clickhouse_compression><case><min_part_size>10000000000</min_part_size><min_part_size_ratio>0.01</min_part_size_ratio><method>lz4</method></case></clickhouse_compression>
</yandex>

注意:由于clickhouse 的版本更新较块,在以前的版本中,metrika.xml配置文件配置集群接副本分片的标签是<clickhouse_remote_servers>,新版本有做修改,标签变成<remote_servers>,如果还使用以前的<clickhouse_remote_servers>标签,登录客户端后执行
select * from system.clusters; 查询,会查询不到集群的信息。

2.2.5.3 配置说明

clickhouse_remote_servers:
clickhouse集群配置标签,固定写法(后续版本改成了remote_servers)。

clickhouse_cluster_3shards_1replicas:
配置clickhouse的集群名称,可自由定义名称,注意集群名称中不能包含点号。这里代表集群中有3个分片,每个分片有1个副本。
分片是指包含部分数据的服务器,要读取所有的数据,必须访问所有的分片。
副本是指存储分片备份数据的服务器,要读取所有的数据,访问任意副本上的数据即可。

shard:
分片,一个clickhouse集群可以分多个分片,每个分片可以存储数据,这里分片可以理解为clickhouse机器中的每个节点。
这里可以配置一个或者任意多个分片,在每个分片中可以配置一个或任意多个副本,不同分片可配置不同数量的副本。如果只是配置一个分片,这种情况下查询操作应该称为远程查询,而不是分布式查询。

replica:
每个分片的副本,默认每个分片配置了一个副本。也可以配置多个。如果配置了副本,读取操作可以从每个分片里选择一个可用的副本。如果副本不可用,会依次选择下个副本进行连接。该机制利于系统的可用性。

internal_replication:
默认为false,写数据操作会将数据写入所有的副本,设置为true,写操作只会选择一个正常的副本写入数据,数据的同步在后台自动进行。

zookeeper-servers:
配置的zookeeper集群

macros:
区分每台clickhouse节点的宏配置,每台clickhouse需要配置不同名称。

networks:
这里配置ip为“::/0”代表任意IP可以访问,包含IPv4和IPv6。
注意:允许外网访问还需配置/etc/clickhouse-server/config.xml 参照第三步骤。

clickhouse_compression:
MergeTree引擎表的数据压缩设置,
min_part_size:代表数据部分最小大小。
min_part_size_ratio:数据部分大小与表大小的比率。
method:数据压缩格式。
注意:需要在每台clickhouse节点上配置metrika.xml文件,并且修改每个节点的 macros配置名称。

2.3 启动服务

分别在node2、node3、node4节点上,启动clickhouse服务。
启动指令:

service clickhouse-server start

通过netstat -anp | grep 7000指令探测端口是否被监听占用,从图上可知,我们的7000端口,被clickhouse-server程序占用,表明服务启动成功。

2.4 检查集群配置是否完成

在node2、node3、node4任意一台节点进入clickhouse客户端

2.4.1 登录clickehouse

clickhouse-client --port 7000

2.4.2 查询集群信息

select * from system.clusters;

显示如上信息,集群成功。

好了,今天ClickHouse分布式集群部署的相关内容就分享到这里,如果帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

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

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

相关文章

单片机第三季-第三课:STM32开发板原理图、配置、浮点运算单元

目录 1&#xff0c;开发板原理图 2&#xff0c;浮点运算单元&#xff08;FPU&#xff09; 1&#xff0c;开发板原理图 课程视频比较早&#xff0c;介绍了三款开发板。观看视频时用的开发板说和51单片机共板的STM32核心板&#xff0c;将51单片机从底座拆下来后&#xff0c;安…

【从0学习Solidity】35. 荷兰拍卖

【从0学习Solidity】35. 荷兰拍卖 博主简介&#xff1a;不写代码没饭吃&#xff0c;一名全栈领域的创作者&#xff0c;专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构&#xff0c;分享一些项目实战经验以及前沿技术的见解。关注我们的主页&#xff0c;探索全栈…

黑马JVM总结(十四)

&#xff08;1&#xff09;分代回收_1 Java虚拟机都是结合前面几种算法&#xff0c;让他们协同工作&#xff0c;具体实现是虚拟机里面一个叫做分代的垃圾回收机制&#xff0c;把我们堆内存大的区域划分为两块新生代、老年代 新生代有划分为伊甸园、幸存区Form、幸存区To 为什…

ARMv8 cache的包含策略inclusive 和 exclusive之间的区别以及Cortex-A55示例详解

Inclusive 和 Exclusive 一&#xff0c; 什么是cache的inclusive 和 exclusive二&#xff0c;Inclusive 和 Exclusive cache示例2.1 Inclusive cache2.2 Exclusive cache 三&#xff0c; inclusive cache和 exclusive cache的比较3.1 cache coherency3.2 miss rate3.3 cache ca…

使用 Docker 安装 Elasticsearch (本地环境 M1 Mac)

Elasticsearchkibana下载安装 docker pull elasticsearch:7.16.2docker run --name es -d -e ES_JAVA_OPTS“-Xms512m -Xmx512m” -e “discovery.typesingle-node” -p 9200:9200 -p 9300:9300 elasticsearch:7.16.2docker pull kibana:7.16.2docker run --name kibana -e EL…

最频繁被问到的SQL面试题

面试感叹失败的原因可能有很多&#xff0c;而做成的道路只有⼀条&#xff0c;那就是不断积累。纯手工的8291字的SQL面试题总结分享给初学者&#xff0c;俗称八股文&#xff0c;期待对新手有所帮助。 窗口函数题 窗口函数其实就是根据当前数据, 计算其在所在的组中的统计数据。…

网工基础知识——以太网

1972年Bob Metcalfe“以太网之父”被Xerox雇佣为网络专家&#xff0c;Bob Metcalfe 来到Xerox公司的Palo Alto研究中心&#xff08;PARC&#xff09;的第一个任务是把Palo Alto的计算机连接到ARPANET&#xff08;Internet的前身&#xff09;上。1972年底Bob Metcalfe以ALOHA系统…

嵌入式开发笔记:STM32的外设GPIO知识学习

GPIO简介&#xff1a; • GPIO &#xff08; General Purpose Input Output &#xff09;通用输入输出口 • 可配置为 8 种输入输出模式 • 引脚电平&#xff1a; 0V~3.3V &#xff0c;部分引脚可容忍 5V &#xff08;如舵机和驱动直流电机&#xff09; • 输出模式下可控制端口…

机器学习 day35(决策树)

决策树 上图的数据集是一个特征值X采用分类值&#xff0c;即只取几个离散值&#xff0c;同时也是一个二元分类任务&#xff0c;即标签Y只有两个值 上图为之前数据集对应的决策树&#xff0c;最顶层的节点称为根节点&#xff0c;椭圆形节点称为决策节点&#xff0c;矩形节点称…

springboot整合返回数据统一封装

1、MagCode&#xff0c;错误码枚举类 package com.mgx.common.enums;import lombok.*; import lombok.extern.slf4j.Slf4j;/*** 错误码* author mgx*/ Slf4j NoArgsConstructor AllArgsConstructor public enum MsgCode {/*** 枚举标识&#xff0c;根据业务类型进行添加*/Code…

阻塞队列-生产者消费者模型

阻塞队列介绍标准库阻塞队列使用基于阻塞队列的简单生产者消费者模型。实现一个简单型阻塞队列 &#xff08;基于数组实现&#xff09; 阻塞队列介绍 不要和之前学多线程的就绪队列搞混&#xff1b; 阻塞队列&#xff1a;也是一个队列&#xff0c;先进先出。带有特殊的功能 &…

Learn Prompt-提供示例

目前我们与 ChatGPT 交流的主要形式是文字。提示除了指令问题的形式外&#xff0c;还可以包含例子。特别是当我们需要具体的输出时&#xff0c;提供例子可以省去我们对具体任务的解释&#xff0c;帮助ChatGPT更好地理解我们的确切需求&#xff0c;从而提供更准确&#xff0c;更…

【数据结构】哈希应用——位图、布隆过滤器

文章目录 一、位图1.基本概念2.基本实现3.基本应用3.1 找100亿个整数只出现一次的数3.2 两个文件分别有100亿整数&#xff0c;1G内存&#xff0c;求交集 二、布隆过滤器1、基本实现2、基本应用2.1过滤一部分的数据2.2 两个文件&#xff0c;分别100亿个查询&#xff0c;1G内存&a…

[Linux入门]---管理者操作系统

文章目录 1.操作系统概念2.设计操作系统的目的3.操作系统如何进行管理系统调用和库函数概念 1.操作系统概念 任何计算机系统都包含一个基本的程序集合&#xff0c;称为操作系统(OS)。笼统的理解&#xff0c;操作系统包括&#xff1a; 内核&#xff08;进程管理&#xff0c;内存…

C# OpenCvSharp Yolov8 Detect 目标检测

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace Open…

索引(含B树、B+树)

1、索引&#xff08;index&#xff09; 索引是在数据库表的字段上添加的&#xff0c;是为了提高查询效率存在的一种机制。 一张表的一个字段可以添加一个索引&#xff0c;当然&#xff0c;多个字段联合起来也可以添加索引。 索引相当于一本书的目录&#xff0c;是为了缩小扫描…

Avl树(有详细图解)

目录 介绍 引入 概念 特点 模拟实现 思路 插入 旋转 左旋 无子树 有子树 右旋 无子树 有子树 左右旋 引入(也就是有子树版本的抽象图解) 解决方法(也就是左右旋) 总结 无子树(也就是curright的位置就是newnode) 有子树 模型高度解释 旋转 更新三个…

深度学习修炼(二)全连接神经网络 | Softmax,交叉熵损失函数 优化AdaGrad,RMSProp等 对抗过拟合 全攻略

文章目录 1 多层感知机&#xff08;全连接神经网络&#xff09;1.1 表示1.2 基本概念1.3 必要组成—激活函数1.4 网络结构设计 2 损失函数2.1 SOFTMAX操作2.2 交叉熵损失函数 3 优化3.1 求导计算过于复杂&#xff1f;3.2 链式法则导致的问题&#xff1f;3.3 梯度下降算法的改进…

八大排序(二)快速排序

一、快速排序的思想 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法&#xff0c;其基本思想为&#xff1a;任取待排序元素序列中的某元素作为基准值&#xff0c;按照该排序码将待排序集合分割成两子序列&#xff0c;左子序列中所有元素均小于基准值&#xff0c;右…

免费的AI写作软件-智能AI写作工具

我们要谈的话题是AI写作&#xff0c;尤其是免费AI写作&#xff0c;以及147SEOAI写作免费工具。您是否曾经为了创作文章而感到煞费苦心&#xff1f;是否一直在寻找一种能够轻松生成高质量文章的方法&#xff1f; 147GPT批量文章生成工具​www.147seo.com/post/2801.html​编辑ht…