clickhouse 集群搭建

news2025/1/17 22:36:39

目录

一、 首先要安装单节点集群

二、安装zookeeper并搭建集群

1. 配置host

2. 安装zookeeper

3. 配置zookeeper

三、clickhouse 集群配置

1.配置metrika.xml文件

2. 修改clickhouse的配置文件


一、 首先要安装单节点集群

在这里就不太赘述。官网下载安装包,然后放到一个文件夹中,执行以下命令即可:

rpm -ivh ./*.rpm

安装途中会让你为默认用户指定密码,输入密码或者直接回车键不设置密码。

安装完成后可以直接

clickhouse start

来启动

二、安装zookeeper并搭建集群

1. 配置host

vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.10.11 ck-01
192.168.10.12 ck-02
192.168.10.13 ck-03

 修改本机hostname,

vim /etc/sysconfig/network

HOSTNAME=ck-01
hostnamectl set-hostname ck-01

2. 安装zookeeper

tar -xzvf apache-zookeeper-3.5.9-bin.tar.gz -C /opt/

解压路径可以自己指定。

3. 配置zookeeper

进入zookeeper的conf目录下, 将其中的zoo_sample.cfg 文件改名或者复制一份命名为zoo.cfg

并对 zoo.cfg进行配置

cd /opt/apache-zookeeper-3.5.9-bin/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

配置文件修改为如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/data/zookeeper/
dataLogDir=/data/log/zookeeper/
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=ck-01:2888:3888
server.2=ck-02:2888:3888
server.3=ck-03:2888:3888

其中dataDir是数据存储路径,dataLogDir是日志路径,这个自己指定即可

在设定的dataDir的目录下,创建myid文件并写入1,其他机器分别写入2,3

cd /data/zookeeper/
vim myid
echo 1 > myid

然后进入bin目录下执行启动脚本启动zookeeper

cd /opt/apache-zookeeper-3.5.9-bin/bin/
# 启动
./zkServer.sh start
# 查看状态
./zkServer.sh status

出现下面这种则表示成功启动成功

\

可以将zookeper的启动加入到环境变量中,避免每次都要进入bin目录才能启动,

vim /etc/profile

export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.5.9-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

三、clickhouse 集群配置

1.配置metrika.xml文件

首先在/etc 下创建metrika.xml文件,并输入


<!--集群分片副本相关配置 1分片3副本 -->
<yandex>
  <clickhouse_remote_servers>
   <!--集群名称 -->
    <clickhouse_1shards_3replicas>

      <!-- 第1个分片 -->
      <shard>
        <!-- 是否写入多副本 -->
         <!-- <internal_replication>false</internal_replication>  -->
          <!-- 1分片的1副本 -->
          <replica>
            <host>ck-01</host>
            <port>9000</port>
          </replica>
          <!-- 1分片的2副本 -->
          <replica>
            <host>ck-02</host>
            <port>9000</port>
          </replica>
          <!-- 1分片的3副本 -->
          <replica>
            <host>ck-03</host>
            <port>9000</port>
          </replica>
      </shard>
    </clickhouse_1shards_3replicas>
  </clickhouse_remote_servers>


  <!--zookeeper相关配置-->

  <zookeeper-servers>
    <node index="1">
      <host>ck-01</host>
      <port>2181</port>
    </node>
    <node index="2">
      <host>ck-02</host>
      <port>2181</port>
    </node>
    <node index="3">
      <host>ck-03</host>
      <port>2181</port>
    </node>
  </zookeeper-servers>

    <!--压缩策略-->

    <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>

  <!-- 本机绑定地址 -->

  <networks>
    <ip>::/0</ip>
  </networks>


  <macros>
    <shard_name>01</shard_name>
    <replica_name>ck-01</replica_name>
  </macros>


</yandex>

<macros>标签下的要根据所配置的机器进行配置,其他两台应该

  <macros>
    <shard_name>02</shard_name>
    <replica_name>ck-02</replica_name>
  </macros>

  <macros>
    <shard_name>03</shard_name>
    <replica_name>ck-03</replica_name>
  </macros>

需要注意的是,这个配置文件需要赋予clickhouse权限

chown -R clickhouse:clickhouse /etc/metrika.xml

2. 修改clickhouse的配置文件

clickhouse的默认配置文件为/etc/clickhouse-server/config.xml

vim /etc/clickhouse-server/config.xml
<!--对外开放-->
<listen_host>::</listen_host>

<!--修改数据路径-->

<path>/data/clickhouse/</path>

<!-- Configuration of clusters that could be used in Distributed tables.
         https://clickhouse.tech/docs/en/operations/table_engines/distributed/
-->
    
<zookeeper incl="zookeeper-servers" optional="true" />
    <include_from>/etc/metrika.xml</include_from>
    <macros incl="macros" optional="true" />

<remote_servers incl="clickhouse_remote_servers">

一共需要修改三项,分别是:

1)<listen_hosts> 这个是为了能让外部机器访问

2)<path> 这个是配置数据存储路径,也可以不修改,但是如果修改了路径,则一定要将这个路径的权限改为clickhouse,不然无法启动clickhosue

3)添加上面的配置,使得集群配置生效,如果不配置,则无法启动集群

完成配置后,重新启动clickhouse

clickhouse restart

然后随便一台机器执行

clickhouse-client

然后执行以下语句

select * from system.clusters;

则能看到所配置的集群,集群名称应该为:clickhouse_1shards_3replicas 这个根据自己配置的集群名称不同有所不同

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

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

相关文章

离线安装Nginx(rpm方式)

环境&#xff1a;centos7.9 下面将展示通过rpm方式安装Nginx 1.官方下载Nginx rpm包 下载地址 http://nginx.org/packages/ 下载版本根据操作系统版本进行选择&#xff0c;本次操作系统是centos7.9 - 64位系统&#xff0c;所以对应的下载路径是&#xff1a; http://nginx.or…

视频监控管理平台EasyCVR视频平台通过navicat修改登录密码的具体操作步骤

TSINGSEE青犀视频监控管理平台EasyCVR可以根据不同的应用场景需求&#xff0c;让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上&#xff0c;平台可实现视频实时直播、云端录像、云存储、回放与检索、告警上报、视频快照、…

OJ练习第147题——字符串中的查找与替换

字符串中的查找与替换 力扣链接&#xff1a;833. 字符串中的查找与替换 题目描述 你会得到一个字符串 s (索引从 0 开始)&#xff0c;你必须对它执行 k 个替换操作。替换操作以三个长度均为 k 的并行数组给出&#xff1a;indices, sources, targets。 要完成第 i 个替换操…

RDMA Send Receive操作

1. 前言 RDMA指的是远程直接内存访问&#xff0c;这是一种通过网络在两个应用程序之间搬运缓冲区里的数据的方法。RDMA与传统的网络接口不同&#xff0c;因为它绕过了操作系统。这允许实现了RDMA的程序具有如下特点&#xff1a; 绝对的最低时延最高的吞吐量最小的CPU足迹 &am…

《游戏编程模式》学习笔记(四) 观察者模式 Observer Pattern

定义 观察者模式定义了对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 这是定义&#xff0c;看不懂就看不懂吧&#xff0c;我接下来举个例子慢慢说 为什么我们需要观察者模式 我们看一个很简…

二叉树的构建及遍历

题目链接:https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef?tpId60&&tqId29483&rp1&ru/activity/oj&qru/ta/tsing-kaoyan/question-ranking 题目 编一个程序&#xff0c;读入用户输入的一串先序遍历字符串&#xff0c;根据此字符串建…

视频播放相关记录

一、场景 App应用测试在二次回归时&#xff0c;提出了安卓端视频定位不准的问题。 二、分析 代码层面使用了安卓原始的MediaPlayer中的seekTo接口来定位&#xff1a; mp.setOnInfoListener(new MediaPlayer.OnInfoListener() {Overridepublic boolean onInfo(MediaPlayer mp, i…

多旋翼飞控底层算法开发系列实验 | 多旋翼动力系统设计实验1

多旋翼飞控底层算法开发系列实验 | 多旋翼动力系统设计实验1 01 多旋翼动力系统简介 多旋翼无人机的动力系统通常包括螺旋桨、电机、电调以及电池。动力系统是多旋翼最重要的组成部分&#xff0c;它决定了多旋翼的主要性能&#xff0c;如悬停时间、载重能力、飞行速度和飞行距…

The kernel appears to have died. It will restart automatically.

在使用pytorch运行一个小案例时&#xff0c;绘制图像时出现了 The kernel appears to have died. It will restart automatically. 查看 anaconda prompt OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized. OMP: Hint This means…

NestJs 中使用 mongoose

在 NestJS 中链接 MongoDB 有两种方法。一种方法就是使用TypeORM来进行连接&#xff0c;另外一种方法就是使用Mongoose。 此笔记主要是记录使用Mongoose的。所以我们先安装所需的依赖&#xff1a; npm i nestjs/mongoose mongoose安装完成后&#xff0c;需要在AppModule中引入…

前端基础学习笔记

目录 1.HTML部分1.HTML简介2.实例介绍3.标题4.段落5.链接6.图像7.表格8.速查列表1.基本文档2.基本标签3.文本格式化4.链接5.图片6.无序列表7.有序列表8.定义列表9.表格10.框架11.表单 2.CSS部分1.CSS简介1.什么是CSS2.为什么使用CSS3.CSS作用 2.基本用法1.CSS语法2.CSS应用方式…

Failed to resolve component: v-data-table“. vue3 + vuefity 使用 v-data-table 报错解决

在使用 vue3 vuetify 开发项目的过程中用到了 v-data-table 组件&#xff0c;结果在使用的过程中发现加载失败控制台报错。 [Vue warn]: Failed to resolve component: VDataTable解决方案&#xff1a; import { VDataTable } from vuetify/labs/VDataTable参考文档: https:…

双碳目标下基于“遥感+”多技术融合在碳储量、碳排放、碳循环、温室气体教程

详情点击链接&#xff1a;双碳目标下基于“遥感”多技术融合在碳储量、碳排放、碳循环、温室气体教程 一&#xff1a;双碳视角下遥感技术的研究方向 1.双碳背景及遥感的现实需求 2.全球碳库、碳收支及碳循环现状 3.碳储量、碳收支与碳循环中的遥感技术 4.ENVI及ArcGIS软件一体…

(三) CUDA 硬件实现

一组带有on-chip 共享内存的SIMD多处理器 GPU可以被看作一组多处理器, 每个多处理器使用单一指令&#xff0c;多数据架构(SIMD)【单指令流多数据流】 在任何给定的时钟周期内&#xff0c;多处理器的每个处理器执行同一指令&#xff0c;但操作不同的数据 每个多处理器使用以下…

广告ROI可洞察到订单转化率啦

toB广告营销人的一日三问&#xff1a; 如何实现线索增长&#xff1f;如何获取更多高质量线索&#xff1f;如何能用更少的钱拿到更多高质量的线索&#xff1f; < 广告营销的终极目标&#xff0c;就是提升ROI > 从ROI公式中&#xff0c;可以找到提升广告营销ROI的路径&…

Linux:shell脚本循环语句

目录 一、循环含义 二、echo命令 三、for 3.1.将1到100累加求和 3.2批量添加用户 3.3 根据IP地址检查主机状态 四、 while 和 until 4.1 猜价格 4.2 1-100求和 一、循环含义 循环含义 将某代码段重复运行多次&#xff0c;通常有进入循环的条件和退出循环的条件 重复…

kali搭建vulhub漏洞靶场

安装kali 下载kali作为虚拟环境&#xff0c; Get Kali | Kali Linux 通过vmvare打开&#xff0c;默认账号密码kali/kali 修改root密码 su passwd root 如果一些配置普通用户做不了就切换kali&#xff0c;或sudo 命令 kali配置 apt换源 echo > /etc/apt/sources.list v…

java对大文件分片上传

这里记录一下&#xff0c;Java对大文件的切分&#xff0c;和后端接口分片上传的实现逻辑 正常&#xff0c;前后端分离的项目其实是前端去切分文件&#xff0c;后端接口接收到切分后的分片文件去合并&#xff0c;这里都用java来记录一下。特别说明&#xff1a;我这里用的是zip包…

Codeforces Round 888 (Div. 3)ABC

Codeforces Round 888 (Div. 3) 目录 A. Escalator Conversations题目大意思路代码 B. Parity Sort题目大意思路代码 C. Tiles Comeback题目大意思路代码 A. Escalator Conversations 题目大意 判断有多少个人能够通过站在楼梯上的操作和VLAD一样高或者是VLAD通过站在楼梯上的…

6.1 MyBatis基础

1.MyBatis概述 MyBatis本是apache的一个开源项目iBatis&#xff0c;2010年这个项目由apache software foundation迁移到了google code&#xff0c;并且改名为MyBatis&#xff0c;2013年11月MyBatis又被迁移到Github。 MyBatis是一个支持普通SQL查询、存储过程以及高级映射的持…