# ClickHouse集群部署
防止一些意外的情況
1、取消打開文件數限制
在/etc/security/limits.conf、/etc/security/limits.d/20-nproc.conf這2個文件的末尾加入一下
文件末尾加:
~~~
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
~~~
2、取消SELINUX
修改/etc/selinux/config 中 SELINUX=disabled
3、關閉防火墻
service iptables stop
4、安裝依賴
~~~
yum install -y libtool
yum install -y *unixODBC
~~~
5、安裝三臺單機clickhouse
略
6、配置metrika.xml文件
在/etc/clickhouse-server/config.d文件夾下添加一個名為metrika.xml的配置文件
~~~XML
<yandex>
<clickhouse_remote_servers>
<!--集群名稱,clickhouse支持多集群的模式-->
<clickhouse_cluster>
<!--定義分片節點,這里我指定3個分片,每個分片只有1個副本,也就是它本身-->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>server1</host>
<port>9000</port>
</replica>
</shard>
<shard>
<replica>
<internal_replication>true</internal_replication>
<host>server2</host>
<port>9000</port>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>server3</host>
<port>9000</port>
</replica>
</shard>
</clickhouse_cluster>
</clickhouse_remote_servers>
<!--zookeeper集群的連接信息-->
<zookeeper-servers>
<node index="1">
<host>server1</host>
<port>2181</port>
</node>
<node index="2">
<host>server1</host>
<port>2182</port>
</node>
<node index="3">
<host>server1</host>
<port>2183</port>
</node>
</zookeeper-servers>
<!--定義宏變量,后面需要用-->
<macros>
<replica>server1</replica>
</macros>
<!--不限制訪問來源ip地址-->
<networks>
<ip>::/0</ip>
</networks>
<!--數據壓縮方式,默認為lz4-->
<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>
~~~
注意配置中變量macros為對應主機名不能一樣
7、修改三臺機器的config.xml的配置
vi /etc/clickhouse-server/config.xml
取消注釋::
~~~
<!--引入metrika.xml-->
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
#引用Zookeeper配置的定義
<zookeeper incl="zookeeper-servers" optional="true" />
~~~
8、啟動集群
1)啟動Zookeeper集群
~~~
zkServer.sh start zk1.cfg
zkServer.sh start zk2.cfg
zkServer.sh start zk3.cfg
~~~
2)啟動ClickHouse
分別啟動ClickHouse
~~~
sudo clickhouse start
~~~
9、驗證集群
select \* from system.clusters

10、使用ClickHouse訪問Zookeeper
在ClickHouse系統表中,提供了一張Zookeeper代理表,我們可以使用SQL輕松訪問Zookeeper內的數據,不用再像以前一樣使用客戶端登錄進去查看。
~~~
-- 查詢Zookeeper根目錄
select * from system.zookeeper where path = '/'
-- 查詢ClickHouse目錄
select * from system.zookeeper where path = '/clickhouse'
~~~
文檔參考:[https://blog.csdn.net/qq\_42194171/article/details/109560651](https://blog.csdn.net/qq_42194171/article/details/109560651)
- ClickHouse
- 第一節 ClickHouse入門
- 1.1 ClickHouse概述
- 1.2 ClickHouse單機安裝
- 1.3 ClickHouse配置
- 1.4 ClickHouse數據庫引擎
- 1.5 ClickHouse集群部署
- 第二節 ClickHouse進階
- 2.1 ClicKHouse數據類型
- 2.2 ClicKHouse基本語法
- 2.3 ClickHouse引擎
- 2.4 ClickHouse函數
- 2.5 ClickHouse分布式表
- 2.6 ClickHouse權限和密碼加密
- 2.7 ClickHouse數據導入和導出
- 第三節 ClicKHouse實戰篇
- 3.1 ClickHouse的JDBC連接
- 3.2 ClickHouse用戶行為分析
- 3.3 ClickHouse實戰
- 第四節 ClicKHouse常見問題
- 4.1 ClickHouse常見問題匯總
- 第五節 ClickHouse其他
- 5.1 ClickHouse可視化工具
- 5.2 ClickHouse學習教程