ClickHouse分布式集群部署

news2024/11/29 0:41:53

目录

​编辑

一、环境说明

二、安装部署

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.coloradmin.cn/o/1028282.html

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

相关文章

Tomcat的启动问题

今天去打开Tomcat的时候没反应 如下 按之前是到Tomcat目录下的bin目录下的startup.bat文件&#xff0c;双击&#xff0c;就可以启动Tomcat服务器。启动后可以 打开浏览器&#xff0c;在浏览器地址栏中输入以下地址测试&#xff1a; 1、http://localhost:8080 2、http://127.…

手撕 LFU 缓存

大家好&#xff0c;我是 方圆。LFU 的缩写是 Least Frequently Used&#xff0c;简单理解则是将使用最少的元素移除&#xff0c;如果存在多个使用次数最小的元素&#xff0c;那么则需要移除最近不被使用的元素。LFU 缓存在 LeetCode 上是一道困难的题目&#xff0c;实现起来并不…

Fair下发产物-布局DSL生成原理

一、概述 大家都知道,Flutter在release环境是以AOT模式运行的,这就决定了我们要做动态化的话无法简单的通过动态下发dart代码执行的。根据Fair团队的前期调研,我们对布局动态化和逻辑动态化的实现采用了两套不同的实现方案,对于布局部分,我们在解析dart源文件之后生成DSL…

xterm使用

xterm使用 前言1. xterm介绍2. xterm使用2.1 xterm简单示例2.2 xterm监听输入并在终端中实时显示方式1:onKey监听方式2:onData监听onData和onKey什么区别 2.3 xterm与vue整合2.3 xterm vue websocket 附录配置说明 前言 vue与xterm整合记录 1. xterm介绍 xterm 是一个基于…

jvm深入研究文档--java中的堆--详解!--jvm底层探索(1)

阿丹&#xff1a; JVM的内存分区包括以下几个部分&#xff1a; 堆区&#xff08;Heap&#xff09; - 这是JVM的主要部分&#xff0c;用于存储实例对象和大多数Java对象&#xff0c;如数组和用户定义的类。方法区&#xff08;Method Area&#xff09; - 这是线程私有的&#x…

内网穿透的应用-NAS私有云存储 - 搭建Nextcloud私有云盘并公网远程访问

文章目录 摘要1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 摘要 Nextcloud,它是ownCloud的一个分支,是一个文件共享服…

利用fiddler正向代理前端请求到本地后端

前景&#xff1a;在实际开发测试环境中&#xff0c;&#xff08;前后端均已上线到测试服务器或前端以上线而后端还在开发中)。在测试过程中&#xff08;前端页面点击&#xff0c;功能测试&#xff09;发现了bug或异常点。 正常排查问题可能是先利用浏览器检查工具查看接口的返回…

Unity Bolt UGUI事件注册方式总结

Bolt插件提供了丰富的事件注册方式&#xff0c;开发者几乎不用编写任何代码就可以完成事件的注册&#xff0c;进行交互。下面是我使用UI事件注册的相关总结。 1、通过UI控件自身拖拽实现事件的注册。 Button的事件注册&#xff1a; 新建一个UnityEvent事件&#xff0c; Butt…

PASCAL VOC2012数据集详细介绍

PASCAL VOC2012数据集详细介绍 0、数据集介绍2、Pascal VOC数据集目标类别3、 数据集下载与目录结构4、目标检测任务5、语义分割任务6、实例分割任务7、类别索引与名称对应关系 0、数据集介绍 2、Pascal VOC数据集目标类别 在Pascal VOC数据集中主要包含20个目标类别&#xff…

uniapp开发h5 调用微信sdk 全网最全指南!!!! 血泪史!!!

目录 场景&#xff1a; 技术栈&#xff1a; 遇到的问题先抛出来&#xff1a; 1.通过后端同学获取调用微信sdk所需的签名过程中&#xff0c;遇到的跨域问题 2.使用微信sdk前提必须是微信容器&#xff0c;换句话说就是微信浏览器打开&#xff0c;才能使用微信sdk 3.如何在开…

方案:浅析利用AI智能识别与视频监控技术打造智慧水产养殖监管系统

一、方案背景 针对目前水产养殖集约、高产、高效、生态、安全的发展需求&#xff0c;基于智能传感、智慧物联网、人工智能、视频监控等技术打造智慧水产系统&#xff0c;成为当前行业的发展趋势。传统的人工观察水产养殖方式较为单一&#xff0c;难以及时发现人员非法入侵、偷…

Windows系统如何部署Wing FTP Server与公网远程访问【内网穿透】

Wing FTP Server安装配置结合内网穿透实现公网访问本地站点 文章目录 Wing FTP Server安装配置结合内网穿透实现公网访问本地站点前言1.Wing FTP Server下载安装2.Wing FTP Server配置部署3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3…

ChatGLM 实现一个BERT

前言 本文包含大量源码和讲解,通过段落和横线分割了各个模块,同时网站配备了侧边栏,帮助大家在各个小节中快速跳转,希望大家阅读完能对BERT有深刻的了解。同时建议通过pycharm、vscode等工具对bert源码进行单步调试,调试到对应的模块再对比看本章节的讲解。 涉及到的jupyt…

【多目标跟踪】 TrackFormer 耗时三天 单句翻译!!!

【多目标跟踪】 TrackFormer 耗时三天 单句翻译&#xff01;&#xff01;&#xff01; TrackFormer: Multi-Object Tracking with Transformers Abstract The challenging task of multi-object tracking (MOT) re-quires simultaneous reasoning about track initiali…

纽禄美卡Neuromeka亮相美国FABTECH,展示用于焊接的3D视觉协作机器人

原创 | 文 BFT机器人 纽禄美卡Neuromeka公司在由美国精密成型协会、美国焊接协会、化工涂料协会等5大协会举办的美国金属加工及焊接展览会FABTECH上精彩亮相。这家总部位于韩国首尔的公司成立于2013年&#xff0c;是机器人解决方案领域的领先供应商&#xff0c;致力于提高各种…

通过 chatgpt 协助完成网站数据破解

Chatgpt 的出现极大地提升了程序员的工作效率&#xff0c;常见的使用场景包括代码自动生成、代码静态检查等&#xff0c;那么 chatgpt 能否用于某些网站的数据破解工作呢&#xff1f; 问题 某天线上服务开始报警&#xff0c;原来是某个视频网站无法获取到其 cdn 地址导致的下…

【AD】【规则设置】设置四层板

设置四层板 一般 4层板&#xff0c;都会把 地 和 VCC放在内层。1、使用快捷键D-K 进入层叠管理器&#xff0c;添加负片层添加完后&#xff0c;修改层名&#xff0c;方便辨识修改格式&#xff1a;属性层号 2、进入相应layer 设置网络设置GND层设置VCC层特点&#xff1a;在层内可…

【HackTheBox Topology】打靶记录

一、信息收集 1、nmap 扫描发现22 80 端口 2、访问80端口 找到两个域名 topology.htb latex.topology.htb 3、子域扫描发现如下两个域名 dev.topology.htb stats.topology.htb C:\root> gobuster vhost -u http://topology.htb --append-domain -w /usr/share/seclists…

【Android Framework系列】第15章 Fragment+ViewPager与Viewpager2相关原理

1 前言 上一章节【Android Framework系列】第14章 Fragment核心原理(AndroidX版本&#xff09;我们学习了Fragment的核心原理&#xff0c;本章节学习常用的FragmentViewPager以及FragmentViewPager2的相关使用和一些基本的源码分析。 2 FragmentViewPager 我们常用的两个Page…

【基本数据结构 四】线性数据结构:队列

学习了栈后,再来看看第四种线性表结构,也就是队列,队列和栈一样也是一种受限的线性表结构,和栈后进先出的操作方式不同的是,队列是FIFO的结构,也就是先进先出的操作方式。 队列的定义 队列这个概念非常好理解。可以把它想象成排队买票,先来的先买,后来的人只能站末尾…