天天看點

大資料元件部署——clickhouse叢集部署

作者:麻辣小楊排

一、安裝前準備

1、修改主機名

[root@node1 ~]# hostnamectl set-hostname node1

在hosts檔案裡面做映射

大資料元件部署——clickhouse叢集部署

安裝java環境

大資料元件部署——clickhouse叢集部署

二、安裝zookeeper叢集

1、将zookeeper的壓縮包上傳到/tmp目錄

大資料元件部署——clickhouse叢集部署

2、解壓到/usr/local目錄下

[root@node1 tmp]# tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /usr/local/

大資料元件部署——clickhouse叢集部署
大資料元件部署——clickhouse叢集部署

進入到zookeeper的conf目錄,将zoo_sample.cfg複制,并且命名為zoo.cfg

[root@node1 ~]# cd /usr/local/apache-zookeeper-3.8.0-bin/conf/

[root@node1 conf]# cp zoo_sample.cfg zoo.cfg

大資料元件部署——clickhouse叢集部署

修改zoo.cfg配置檔案内容

dataDir=/data

dataLogDir=/datalog

autopurge.snapRetainCount=3

autopurge.purgeInterval=0

maxClientCnxns=60

server.1=10.100.1.10:2888:3888

server.2=10.100.1.11:2888:3888

server.3=10.100.1.12:2888:3888

建立資料目錄和日志目錄

[root@node1 conf]# mkdir /data /datalog/

配置每一台的myid

(1)、node1

echo 1 > /data/myid

(2)、node2

echo 3 > /data/myid

(3)、node3

echo 3 > /data/myid

進入到zookeeper的bin目錄,分别啟動zookeeper

[root@node1 conf]# cd /usr/local/apache-zookeeper-3.8.0-bin/bin/

[root@node1 bin]# ./zkServer.sh start

啟動後,分别檢視zookeeper的狀态

(1)、node1

大資料元件部署——clickhouse叢集部署

(2)、node2(選主機制,node2為主)

大資料元件部署——clickhouse叢集部署

(3)、node3

大資料元件部署——clickhouse叢集部署

三、安裝clickhouse叢集

1、、将clickhouse的rpm包上傳到/opt目錄下

大資料元件部署——clickhouse叢集部署

2、安裝clickhouse

[root@node1 opt]# yum localinstall *rpm -y

5、編輯config.xml檔案,添加如下内容

[root@node1 opt]# vim /etc/clickhouse-server/config.xml

<include_from>/etc/clickhouse-server/metrika.xml</include_from>

<remote_servers incl="clickhouse_remote_servers" />

<zookeeper incl="zookeeper-servers" optional="true" />

<macros incl="macros" optional="true" />

大資料元件部署——clickhouse叢集部署

6、開放遠端通路權限,去掉注釋

大資料元件部署——clickhouse叢集部署

7、給default使用者賦予管理者權限,并且設定密碼

(1)、權限

[root@node1 ~]# vim /etc/clickhouse-server/users.xml

找到user->default,去掉<access_management>的注釋

大資料元件部署——clickhouse叢集部署

(2)、密碼

大資料元件部署——clickhouse叢集部署

8、編輯metrika.xml,複制以下内容

<yandex>

<!-- 叢集配置 -->

<clickhouse_remote_servers>

<!-- 3分片1備份 -->

<cluster_3shards_1replicas>

<!-- 資料分片1 -->

<shard>

<replica>

<host>node1</host>

<port>9000</port>

<user>default</user>

<password>Szzt@2022</password>

</replica>

</shard>

<!-- 資料分片2 -->

<shard>

<replica>

<host>node2</host>

<port> 9000</port>

<user>default</user>

<password>Szzt@2022</password>

</replica>

</shard>

<!-- 資料分片3 -->

<shard>

<replica>

<host>node3</host>

<port>9000</port>

<user>default</user>

<password>Szzt@2022</password>

</replica>

</shard>

</cluster_3shards_1replicas>

</clickhouse_remote_servers>

<!---zokeeper配置 -->

<zookeeper-servers>

<node>

<host>node1</host>

<port>2181</port>

</node>

<node>

<host>node2</host>

<port>2181</port>

</node>

<node>

<host>node3</host>

<port>2181</port>

</node>

</zookeeper-servers>

<!--副本名稱-->

<macros>

<replica>node3</replica>

</macros>

<networks>

<ip>::/0</ip>

</networks>

</yandex>

9、啟動clickhouse服務

[root@node1 opt]# systemctl start clickhouse-server

10、登入clickhouse用戶端

[root@node1 opt]# clickhouse-client -u default --password Szzt@2022

大資料元件部署——clickhouse叢集部署

11、檢視叢集狀态,對比叢集名稱是否正确

node1 :) select * from system.clusters;

大資料元件部署——clickhouse叢集部署

四、clickhouse操作

1、叢集分片與備份測試

(1)、建立叢集測試倉庫(node1操作)

create database testdb on cluster cluster_3shards_1replicas;

大資料元件部署——clickhouse叢集部署

(2)、檢視資料庫

show databases;

大資料元件部署——clickhouse叢集部署

(4)、建立本地表(node1操作)

create table testdb.person_local on cluster cluster_3shards_1replicas (ID Int8, Name String, BirthDate Date) ENGINE = MergeTree(BirthDate, (Name, BirthDate), 8192)

大資料元件部署——clickhouse叢集部署

(6)、在各個節點建分布表(所有節點操作)

create table testdb.person_all as testdb.person_local ENGINE = Distributed(cluster_3shards_1replicas, testdb, person_local, rand());

大資料元件部署——clickhouse叢集部署

person_local為本地表,資料隻是在本地

person_all為分布表,查詢這個表,引擎自動把整個叢集資料計算後傳回

(8)、插入資料(node1操作)

insert into testdb.person_all (*) values ('1','a','2021-10-01');

insert into testdb.person_all (*) values ('2','b','2021-10-01');

insert into testdb.person_all (*) values ('3','c','2021-10-01');

insert into testdb.person_all (*) values ('4','d','2021-10-01');

insert into testdb.person_all (*) values ('5','e','2021-10-01');

insert into testdb.person_all (*) values ('6','f','2021-10-01');

insert into testdb.person_all (*) values ('7','g','2021-10-01');

s

insert into testdb.person_all (*) values ('9','i','2021-10-01');

insert into testdb.person_all (*) values ('10','j','2021-10-01');

大資料元件部署——clickhouse叢集部署

(9)、檢視資料

select * from testdb.person_local

大資料元件部署——clickhouse叢集部署

selec * from testdb.person_all

大資料元件部署——clickhouse叢集部署

2、用戶端連接配接

(1)、下載下傳DBeaver工具

大資料元件部署——clickhouse叢集部署

(2)、建立連接配接,搜尋clickhouse

大資料元件部署——clickhouse叢集部署

(3)、輸入主機位址,使用者名和密碼,測試連接配接(default預設無密碼,可以設定密碼)

大資料元件部署——clickhouse叢集部署

(4)、完成連接配接,可以發現資料庫資訊是一緻的

大資料元件部署——clickhouse叢集部署
大資料元件部署——clickhouse叢集部署

3、建立使用者

(1)、建立測試使用者

CREATE USER test IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'Szzt@2022'

大資料元件部署——clickhouse叢集部署

(2)、檢視使用者

大資料元件部署——clickhouse叢集部署

(3)、給使用者授權

grant ALL on *.* to test

大資料元件部署——clickhouse叢集部署

(4)、檢視授權情況

大資料元件部署——clickhouse叢集部署

(5)、用戶端連接配接

大資料元件部署——clickhouse叢集部署

繼續閱讀