ClickHouse單機以及叢集部署方式
阿新 • • 發佈:2021-07-09
ClickHouse單機以及叢集部署方式
單機部署
第一步:下載
yum install yum-utils
rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64
第二步:安裝與解除安裝
yum install clickhouse-server clickhouse-client
如果需要解除安裝clickhouse:
yum remove clickhouse-server clickhouse-client
第三步:修改配置檔案
clickhouse配置檔案地址:/etc/clickhouse-server/config.xml
- 建立資料夾,用來儲存日誌以及資料
mkdir -p /ccdata/clickhouse/log/clickhouse-server
mkdir -p /ccdata/clickhouse/tmp
mkdir -p /ccdata/clickhouse/user_files
mkdir -p /ccdata/clickhouse/format_schemas
mkdir -p /ccdata/clickhouse/access
- 修改目錄所有者和群組
在修改目錄所有者和群組之前需要先建立一個clickhouse的使用者
#建立clickhouse的使用者在群組clickhouse下面
useradd -m -g clickhouse clickhouse
#更改檔案屬性,讓檔案可寫
chattr -i /etc/passwd
#修改目錄所有者和群組
chown -R clickhouse:clickhouse /ccdata/clickhouse
chown -R clickhouse:clickhouse /etc/clickhouse-server
- 修改配置檔案許可權
chmod 777 /etc/clickhouse-server/config.xml chmod 777 /etc/clickhouse-server/users.xml
- 修改配置檔案config和user
修改config.xml的如下標籤
<log>/ccdata/clickhouse/log/clickhouse-server/clickhouse-server.log</log>
<errorlog>/ccdata/clickhouse/log/clickhouse-server/clickhouse-server.err.log</errorlog>
<path>/ccdata/clickhouse/</path>
<tmp_path>/ccdata/clickhouse/tmp/</tmp_path>
<user_files_path>/ccdata/clickhouse/user_files/</user_files_path>
<format_schema_path>/ccdata/clickhouse/format_schemas/</format_schema_path>
<path>/ccdata/clickhouse/access/</path>
<max_table_size_to_drop>0</max_table_size_to_drop>
<max_partition_size_to_drop>0</max_partition_size_to_drop>
<listen_host>::</listen_host>
user.xml
<!--新增客戶端連結的密碼-->
<password>clickhouse</password>
- 服務的命令
#啟動:
systemctl start clickhouse-server
#停止:
systemctl stop clickhouse-server
#檢視狀態:
systemctl status clickhouse-server
叢集部署
叢集部署在所有機器單機部署完成後進行
第一步:新增分散式配置檔案
vi /etc/metrika.xml
檔案內容
<?xml version="1.0" encoding="utf-8"?>
<yandex>
<clickhouse_remote_servers>
<!-- 叢集名字,自定義 -->
<clickhouse_cluster>
<!-- 定義一個分片 -->
<shard>
<!-- Optional. Shard weight when writing data. Default: 1. -->
<weight>1</weight>
<!-- Optional. Whether to write data to just one of the replicas. Default: false (write data to all replicas). -->
<internal_replication>true</internal_replication>
<!-- 這個分片的副本存在在哪些機器上 -->
<replica>
<host>ch3</host>
<port>9001</port>
</replica>
<replica>
<host>ch2</host>
<port>9001</port>
</replica>
</shard>
</clickhouse_cluster>
</clickhouse_remote_servers>
<zookeeper-servers>
<node>
<host>ch1</host>
<port>8888</port>
</node>
</zookeeper-servers>
<!-- 在分散式表中的這個 shard 內只選擇一個合適的 replica 寫入資料。如果為本地表引擎為 ReplicatedMergeTree ,多個副本之間的資料交由引擎自己處理 -->
<macros>
<layer>01</layer>
<shard>03</shard>
<replica>ch2</replica>
</macros>
</yandex>
第二步:修改config.xml
首先刪除config.xml中的remote_servers標籤的所有配置,新增如下配置(添加了incl後會去metrika.xml中讀取對應的配置)
<remote_servers incl="clickhouse_remote_servers" />
<zookeeper incl="zookeeper-servers" optional="true" />
<macros incl="macros" optional="true" />
第三步:啟動叢集驗證
每臺機器都啟動clickhouse,驗證叢集是否啟動成功
SELECT * FROM system.clusters;