clickhouse叢集部署方法和驗證方法
叢集節點資訊
192.168.30.118
192.168.30.117
192.168.30.116
192.168.30.115
192.168.30.114
注意:5個節點,無副本
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 server.117=192.168.30.117:12888:13888 server.116=192.168.30.116:12888:13888
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
叢集版的部署
1、修改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"/>
<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> </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、手動建立檔案:metrika.xml
vim metrika.xml
直接複製貼上如下的內容到metrika.xml文件中即可,注意修改自己的IP地址
<yandex> <clickhouse_remote_servers> <ck_cluster> <shard> <internal_replication>true</internal_replication> <replica> <host>192.168.30.118</host> <port>9000</port> </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> <shard> <internal_replication>true</internal_replication> <replica> <host>192.168.30.114</host> <port>9000</port> </replica> </shard> </ck_cluster> </clickhouse_remote_servers> <macros> <replica>192.168.30.118</replica> </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資料中建立表,驗證叢集能力
create database test_ck;
CREATE TABLE test_ck.device_thing_data ( time UInt64, user_id String, device_id String, source_id String, thing_id String, identifier String, value_int32 Int32, value_float Float32, value_double Float64, value_string String, value_enum Enum8('0'=0,'1'=1,'2'=2,'3'=3,'4'=4,'5'=5,'6'=6,'7'=7,'8'=8), value_string_ex String, value_array_string Array(String), value_array_int32 Array(Int32), value_array_float Array(Float32), value_array_double Array(Float64), action_date Date, action_time DateTime ) Engine= ReplicatedMergeTree('/clickhouse/tables/01-02/device_thing_data','cluster01-02-1') PARTITION BY toYYYYMM(action_date) ORDER BY (user_id,device_id,thing_id,identifier,time,intHash64(time)) SAMPLE BY intHash64(time) SETTINGS index_granularity=8192建立分散式表用於查詢,在三臺每個機器上均執行如下sql:
建立分散式表用於查詢,在每個機器上均執行如下sql:
CREATE TABLE device_thing_data_all AS test_ck.device_thing_data ENGINE = Distributed(cluster_3s_1r, test_ck, device_thing_data, rand())
具體的內容可參考這篇文章:https://www.cnblogs.com/qa-freeroad/p/14394135.html