一:環境
vm15+Ubuntu18.04*3(192.168.44.128、192.168.44.129、192.168.44.130)
二:安裝JDK1.8
apt install openjdk-8-jre-headless
apt install openjdk-8-jdk-headless
三:安裝zookeeper
ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現。 它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。
1. 下載zookeeper-3.4.14
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/
將下載好的安裝包放到三臺服務器的/opt目錄下並解壓,然後修改目錄名爲zookeeper
tar -zxvf zookeeper-3.4.14.tar.gz
mv zookeeper-3.4.14 zookeeper
2. 進入zookeeper的conf目錄,拷貝zoo_sample.cfg爲zoo.cfg
cp zoo_sample.cfg zoo.cfg
3. 修改配置文件 gedit /etc/clickhouse-server/config.xml,打開 <listen_host>::</listen_host> 的註釋
4. 修改zoo.cfg文件
5. 創建目錄/tmp/zookeeper
mkdir /tmp/zookeeper
6. 設置myid
gedit /tmp/zookeeper/myid
三臺虛擬機分別設置爲1、2、3。
7. 設置環境變量
export ZOOKEEPER_HOME=/tmp/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
重啓使環境變量生效。
8. 啓動zookeeper
9. 測試zookeeper
可以直接連接其他兩臺虛擬機,效果一樣,如果請求被拒絕關閉防火牆即可。
zkCli.sh -server 127.0.0.1:2181
四:配置集羣
1. 修改配置文件 gedit /etc/clickhouse-server/config.xml,打開 <listen_host>::</listen_host> 的註釋。
2. 創建配置文件gedit /etc/metrika.xml
注意:之前因爲設置過clickhouse服務器密碼,因此需要在集羣的配置文件裏,增加分片的用戶名密碼
<yandex>
<clickhouse_remote_servers>
<clickhouse_cluster> <!--集羣名,創建分佈式表用到-->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.44.128</host>
<port>9000</port>
<user>default</user>
<password>555666</password>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.44.129</host>
<port>9000</port>
<user>default</user>
<password>555666</password>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.44.130</host>
<port>9000</port>
<user>default</user>
<password>555666</password>
</replica>
</shard>
</clickhouse_cluster>
</clickhouse_remote_servers>
<!--zookeeper相關配置-->
<zookeeper-servers>
<node index="1">
<host>192.168.44.128</host>
<port>2181</port>
</node>
<node index="2">
<host>192.168.44.129</host>
<port>2181</port>
</node>
<node index="3">
<host>192.168.44.130</host>
<port>2181</port>
</node>
</zookeeper-servers>
<macros>
<replica>192.168.44.128</replica>
</macros>
<networks>
<ip>::/0</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服務
service clickhouse-server restart
4. 測試
select * from system.clusters
結果如圖: