当前位置:   article > 正文

一文搞定clickhouse集群安装部署_liuxn安装clickhouse伪集群

liuxn安装clickhouse伪集群


注:本教程针对的是集群部署,若部署单机版ck则直接按部就班来做不需要在另外的节点上进行相应的配置.

一:部署前准备工作

1.关闭防火墙

关闭防火墙:systemctl stop firewalld.service
查看防火墙:systemctl status firewalld.service

2.取消打开文件数和进程数限制

先看一下系统默认的文件数和进程数分别为1024和4096,因为Clickhouse是特备耗CPU性能的,在查询的过程中可能会遇到进程数增加等情况,所以我们先把文件和进程数调大些。
在这里插入图片描述
1)sudo vi /etc/security/limits.conf,在文件中加入以下内容

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
其中 * 代表限制的是所有用户所有组
soft和hard代表的是文件或进程的上限/下线数量
nofile和noproc代表的是文件和进程
走后一列代表的是文件和进程的数量

2) sudo vi /etc/security/limits.d/20-nproc.conf 在文件的末尾追加上上述同样的内容后保存退出。

在这里插入图片描述

3) 将刚才两个文件使用同步脚本xsync同步到集群的其他两台节点上
注意同步的时候必须要加上sudo ,因为我们同步的是系统路径。
(或者不同步的话你也可以一台一台的在另外两台节点上修改刚才的配置)

sudo /home/mo/bin/xsync /etc/security/limits.conf
sudo /home/mo/bin/xsync /etc/security/limits.d/20-nproc.conf
  • 1
  • 2

在这里插入图片描述

3.安装依赖

集群中三台节点上全部安装下面的依赖

sudo yum install -y libtool
sudo yum install -y *unixODBC*
  • 1
  • 2

4.关闭selinux

没改之前的

在这里插入图片描述

修改/etc/selinux/config中的SELINUX=disabled

在这里插入图片描述

文件同步

sudo /home/mo/bin/xsync /etc/selinux/config
  • 1

然后在三台节点上使用sudo setenforce 0来临时关闭selinux

如下图这时的状态便更新过来了
在这里插入图片描述

二.clickhouse集群部署

1.解压RPM包

sudo rpm -ivh *.rpm
  • 1

下载地址https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/

在这里插入图片描述

在安装的过程中会出现让我们设置密码,为了方便我这里就不设置密码了直接回车就可以了

在这里插入图片描述

2.同步RPM包并安装

将主节点上的四个RPM包分发到剩余的两个节点上去 ,然后也sudo rpm -ivh *.rpm 进行安装一下。

3.修改配置文件

修改config.xml文件使ClickHouse被除本机以外的服务器访问

sudo  vi /etc/clickhouse-server/config.xml
  • 1

大概在文件的156行,将listen前后的注释去掉

在这里插入图片描述

在这个文件中,还有ClickHouse的一些默认比较重要的配置,(不过以下内容不建议去修改当做一个了解)
数据文件路径: /var/lib/clickhouse/
日志文件路径:/var/log/clickhouse-server/clickhouse-server.log
错误日志文件路径:/var/log/clickhouse-server/clickhouse-server.err.log

4.分发配置文件

sudo /home/mo/bin/xsync /etc/clickhouse-server/config.xml

注意注意!!!
注意分配好先别启动,如果集群上部署了hadoop的话还要在config.xml文件中修改下ck的端口号,这里我修改为9111,不然的话会和hadoop的namenode端口冲突一定要注意,但是你集群中没有部署hadoop的话则可以忽略这步了

在这里插入图片描述

5.启动Server和Client

启动 sudo systemctl start clickhouse-server 或 sudo clickhouse-server start
关闭 sudo systemctl stop clickhouse-server 或 sudo clickhouse-server stop
重启 sudo systemctl restart clickhouse-server 或 sudo clickhouse-server restart
查看状态 sudo systemctl status clickhouse-server 或 sudo clickhouse-server status

在这里插入图片描述

启动好以后可以进行客户端连接

 clickhouse-client --port 9111   -m 
  • 1

注意这里如果刚才你没有修改默认端口号的话可以不用加–port 9111

在这里插入图片描述

6.更改CK集群配置文件

1). 安装zookeeperhttps://blog.csdn.net/weixin_44080445/article/details/106331510

2).在node102的/etc/clickhouse-server/config.d目录下创建一个名为metrika.xml的配置文件并加上如下内容(为了方便进入这个config.d目录我们可以暂时切换为root用户),这里根据自己的主机名来更改下面的内容

<?xml version="1.0"?>
<yandex>
	<zookeeper-servers>
	    <node index="1">
	        <host>node102</host>
	        <port>2181</port>
	    </node>
	    <node index="2">
	        <host>node103</host>
	        <port>2181</port>
	    </node>
	    <node index="3">
	        <host>node104</host>
	        <port>2181</port>
	    </node>
	</zookeeper-servers>
</yandex>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

3).同步到node103和node104上

sudo /home/mo/bin/xsync /etc/clickhouse-server/config.d/metrika.xml
  • 1

同步好以后千万别忘记在每台节点上手动改变下metrika.xml的所有者
在这里插入图片描述

4).在 node102的/etc/clickhouse-server/config.xml中增加如下内容

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

  • 1
  • 2
  • 3

在这里插入图片描述
同步到另外两台节点上

sudo /home/mo/bin/xsync /etc/clickhouse-server/config.xml
  • 1

5).退到普通用户并重启clickhouse ,然后三台节点上都启动zookeeper
(因为副本只能同步数据,不能同步表结构,所以我们需要在每台机器上自己手动建表)

6). 在node102,node103,node104上分别建表

这里每台主机都暂时选在default库中建下表.在这里插入图片描述

node102:

create table t_order_rep2 (
    id UInt32,
    sku_id String,
    total_amount Decimal(16,2),
    create_time  Datetime
 ) engine =ReplicatedMergeTree('/clickhouse/table/01/t_order_rep','rep_102')
   partition by toYYYYMMDD(create_time)
   primary key (id)
   order by (id,sku_id);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

node103:

create table t_order_rep2 (
    id UInt32,
    sku_id String,
    total_amount Decimal(16,2),
    create_time  Datetime
 ) engine =ReplicatedMergeTree('/clickhouse/table/01/t_order_rep','rep_103')
   partition by toYYYYMMDD(create_time)
   primary key (id)
   order by (id,sku_id);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

node104:

create table t_order_rep2 (
    id UInt32,
    sku_id String,
    total_amount Decimal(16,2),
    create_time  Datetime
 ) engine =ReplicatedMergeTree('/clickhouse/table/01/t_order_rep','rep_104')
   partition by toYYYYMMDD(create_time)
   primary key (id)
   order by (id,sku_id);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

对以上ReplicatedMergeTree中两个参数的解释
第一个参数是分片的zk_path一般按照: /clickhouse/table/{shard}/{table_name} 的格式写,如果只有一个分片就写01即可。
第二个参数是副本名称,相同的分片副本名称不能相同。

7). 在ndoe102上执行insert语句(只在102上执行就可以,103和104不需要执行)

insert into t_order_rep2 values
(101,'sku_001',1000.00,'2020-06-01 12:00:00'),
(102,'sku_002',2000.00,'2020-06-01 12:00:00'),
(103,'sku_004',2500.00,'2020-06-01 12:00:00'),
(104,'sku_002',2000.00,'2020-06-01 12:00:00'),
(105,'sku_003',600.00,'2020-06-02 12:00:00');

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

插入以后在node103,node104上都可以查看到数据,这里说明已经成功部署好了

在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/428832
推荐阅读
相关标签
  

闽ICP备14008679号