clickhouse集群部署方法和验证方法

集群节点信息

192.168.30.118 

192.168.30.117

192.168.30.116

192.168.30.115

注意:1个节点,1副本

 

 

 

1、安装依赖组建JDK

(1)下载版本:jdk-8u333-linux-x64.tar.gz

(2)下载连接:https://www.oracle.com/java/technologies/downloads/#java8-linux

(3)linux中创建目录:/usr/local,将下载的jdk上传到此目录下,并将jdk-8u333-linux-x64重命名为jdk1.8

mv jdk-8u333-linux-x64 jdk1.8

(4)解压文件:(把下载的文件上传到服务器再次进行解压)

tar -zxvf jdk-8u333-linux-x64.tar.gz

(5)配置环境变量

vim /etc/profile

i 是insert 简写,进入编辑输入模式

/ 是可以搜索关键字

:wq 保存退出

:q 不保存退出

:q! 强制退出

添加如下内容(注意:java_home按照自己的jdk存放目录来放)

export JAVA_HOME=/root/jdk/jdk1.8.0_333
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

按 Esc 退出编辑模式,输入 :wq 保存并退出

(6)生效环境变量

source /etc/profile

(7)检查是否安装成功

javac -version

java  -version

 

2、搭建zookeeper集群

在这三个节点搭建一个zookeeper集群(如果搭建可以直接忽略这一步),先在一个节点上根据以下配置

参考安装方法:https://www.cnblogs.com/jiashengmei/p/11991243.html

最终的zookeeper在zoo.cfg的内容如下,注意:只需要进行3个节点的zookeeper集群配置即可

dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
clientPort=12181

server.118=192.168.30.118:12888:13888    #12888:13888不用改,改的示例:server.数字=IP:12888:13888,注意此处的数字,最后写在对应IP地址的myid的文件中
server.117=192.168.30.117:12888:13888
server.116=192.168.30.116:12888:13888 

在192.168.30.118服务器上,myid的文件中,添加118

在192.168.30.117服务器上,myid的文件中,添加117

在192.168.30.116服务器上,myid的文件中,添加116

 

3、安装clickhouse

安装方式:clickhouse的官网安装方法:https://clickhouse.com/#quick-start

注意:如下的内容,每个

开始安装

sudo apt-get install apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754

echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \
    /etc/apt/sources.list.d/clickhouse.list
sudo apt-get update

sudo apt-get install -y clickhouse-server clickhouse-client

sudo service clickhouse-server start    #此句是启动clickhouse的服务
clickhouse-client # or "clickhouse-client --password" if you set up a password.

验证clickhouse是否安装成功,执行命令

sudo service clickhouse-server status 

安装完后的目录,即存放安装后文件的路径:/etc/clickhouse-server

执行完如上的步骤,则执行如下的命令,查看clickhouse是否部署成功

//客户端连接,直接在命令行运行即可
clickhouse-client 

备注:clickhouse常用的其他命名

sudo service clickhouse-server start 
sudo service clickhouse-server restart    #重启clickhouse
sudo service clickhouse-server status    #查看clickhouse的状态
sudo service clickhouse-server stop   #停止clickhouse

 集群版的部署

注意事项:每次修改了配置文件的内容,记得重启clickhouse的服务:systemctl restart clickhouse-server 

1、进入cd /etc/clickhouse-server目录下,创建touch metrika.xml,再次修改config.xml文件,修改后的内容如下,

vim config.xml
<timezone>Asia/Shanghai</timezone>
 <listen_host>0.0.0.0</listen_host>   #在文档中有,此行取消注释即可
<include_from>/etc/clickhouse-server/metrika.xml</include_from>    #此行在conf文档中没有,需要手动的添加上
<macros incl="macros" optional="true"/> #此行在conf文档中没有,需要手动的添加上
 <zookeeper>                                #根据zookeeper的配置IP,写在这里即可
        <node index="118">                  #"118"指的是:在zookeeper中的server.118后的数字,server.118=192.168.30.118:12888:13888
            <host>192.168.30.118</host>
            <port>12181</port>                #12181端口是自己给定的,也可用默认的2181
        </node>
        <node index="117">
            <host>192.168.30.117</host>
            <port>12181</port>
        </node>
        <node index="116">
            <host>192.168.30.116</host>
            <port>12181</port>
        </node>
</zookeeper>

2、目录cd /etc/clickhouse-server/文件下,手动创建文件:metrika.xml

vim metrika.xml

直接复制粘贴如下的内容到metrika.xml文档中即可,注意修改自己的IP地址,端口9000可以不用改,用默认即可

<yandex>
    <clickhouse_remote_servers>
        <ck_cluster>
<!--4分片1副本--> <shard> <internal_replication>true</internal_replication> <replica> <host>192.168.30.118</host> <port>9000</port> #注意:若在users.xml中设置了用户和密码,此处要添加<user>test</user><password>123</password> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>192.168.30.117</host> <port>9000</port> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>192.168.30.116</host> <port>9000</port> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>192.168.30.115</host> <port>9000</port> </replica> </shard> </ck_cluster> </clickhouse_remote_servers> <macros>
<shard>01</shard> #注意:这里的内容,每个服务器的配置文件必须相同,否则复制表将无法操作 <replica>192.168.30.118</replica> #注意:每台服务器的配置文件。写自己的IP地址 </macros> <networks> <ip>::</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>

3、若需查看clickhouse的log日志,在config.xml文件中就包含了,比如:

/var/log/clickhouse-server/clickhouse-server.log
/var/log/clickhouse-server/clickhouse-server.err.log

4、进行完如上的配置,重新启动clickhouse,再次查看clickhouse是否启动成功

sudo service clickhouse-server restart    #重启clickhouse
sudo service clickhouse-server status    #查看clickhouse的状态

˙注意:状态也要是 active (running) 才可以

5、连接clickhouse数据库,查看集群是否部署成功

 //客户端连接
clickhouse-client

//验证数据库
show databases;

//查看集群
select * from system.clusters;

 6、验证zookeeper是否与当前数据库clickhouse进行了正确的配置,可以正确连接到

直接在clickhouse的数据库中,输入如下的命令进行验证:

SELECT * FROM system.zookeeper WHERE path = '/clickhouse';

7、clickhouse数据中创建表,验证集群能力

首先进入到clickhouse数据库:

clickhouse-client

(1)创建一个测试库

create database abc;

(2)分别在4个(118、117、116、115)节点上,创建本地表cluster3s1r_local。(直接复制,不用做任何的更改)

CREATE TABLE abc.cluster3s1r_local
(
    `id` Int32,
    `website` String,
    `wechat` String,
    `FlightDate` Date,
    Year UInt16
)
ENGINE = MergeTree(FlightDate, (Year, FlightDate), 8192);

(3)在第一个(118)节点上,创建分布式表

#ck_cluster:为metrika.xml配置文件中建立的标签
CREATE TABLE abc.cluster3s1r_all AS cluster3s1r_local ENGINE = Distributed(ck_cluster, abc, cluster3s1r_local, rand());

 

 

 (4)往分布式表cluster3s1r_all中插入数据,cluster3s1r_all 会随机插入到四个节点的本地表(cluster3s1r_local)中#

INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(1,'https://niocoder.com/','java干货','2020-11-28',2020);

INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(2,'http://www.merryyou.cn/','javaganhuo','2020-11-28',2020);

INSERT INTO default.cluster3s1r_all (id,website,wechat,FlightDate,Year)values(3,'http://www.xxxxx.cn/','xxxxx','2020-11-28',2020);

(5)可以查看四个节点本地表的数据和分布式表的数据

# 查询总量查分布式表 
select * from cluster3s1r_all; 

#各机器节点的本地表
select * from cluster3s1r_local; 

 ------------如上,就已完成了全部的部署---------

附录

ClickHouse服务相关参数配置

1:开放远程访问

vim /etc/clickhouse-server/config.xml +70

 

 

2:内存设置限制

vim /etc/clickhouse-server/users.xml

 

 

3:设置数据的目录

vim /etc/clickhouse-server/config.xml

  

 具体的内容可参考这篇文章:

文章一:https://www.cnblogs.com/qa-freeroad/p/14394135.html

文章二:https://www.cnblogs.com/ywjfx/p/14329605.html

 

posted @ 2022-05-09 19:15  Syw_文  阅读(5715)  评论(1编辑  收藏  举报