ClickHouse安裝文檔
1.時間同步、ssh免密通信、域名映射、jdk(高可用版本需要安裝zookeeper)、取消 SELINUX、關閉防火牆
2.CentOS7 打開文件數限制:
在 /etc/security/limits.conf 這個文件的末尾加入一下內容:
sudo vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
在 /etc/security/limits.d/90-nproc.conf 這個文件的末尾加入一下內容:
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
重啟服務器之后生效,用 ulimit -n 或者 ulimit -a 查看設置結果
ulimit -n
ulimit -a
3.單機模式安裝
3.1准備操作
需要驗證當前服務器的 CPU 是否支持 SSE 4.2 指令集,因為向量化執行需要用到這項特性:
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
3.2yum安裝
yum install yum-utils -y
rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/clickhouse.repo yum install clickhouse-server clickhouse-client -y
3.3離線安裝(官網選擇安裝包https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/)
rpm -ivh clickhouse-server-20.5.4.40-2.noarch.rpm
rpm -ivh clickhouse-common-static-20.5.4.40-2.x86_64.rpm
rpm -ivh clickhouse-client-20.5.4.40-2.noarch.rpm
3.4修改用戶名密碼
clickhouse的密碼有2種形式,一種是明文,一種是寫sha256sum的Hash值
官方不建議直接寫明文密碼,可以用以下命令生成密碼
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD";
echo -n "$PASSWORD" | sha256sum | tr -d '-'
這樣可以得到兩行數據,第一行是密碼明文,第二行是密碼密文
vim users.xml,找到 users --> default --> 標簽下的password修改成password_sha256_hex,並把密文填進去
<password_sha256_hex>密碼密文</password_sha256_hex>
添加密碼后,命令行啟動的方式也要加上密碼
sudo clickhouse-client -h ip地址 -d default -m -u default --password 密碼明文
3.5驗證安裝是否成功
sudo systemctl start clickhouse-server
sudo systemctl status clickhouse-server
ps -aux | grep clickhouse
netstat -nltp | grep clickhouse
sudo clickhouse-client -h ip地址 -d default -m -u default --password 密碼明文
3.6安裝成功的核心目錄
(1)/etc/clickhouse-server:服務端的配置文件目錄,包括全局配置config.xml和用戶配置users.xml 等。
(2)/var/lib/clickhouse:默認數據存儲目錄,通常會修改默認路徑配置,將數據保存到大容量磁盤掛 載路徑
(3)/var/log/clickhouse-server:默認日志保存目錄,通常會修改路徑配置將日志保存到大容量磁盤 掛載的路徑
4.集群模式安裝
192.168.1.252 | cdh1 |
---|---|
192.168.1.253 | cdh2 |
192.168.1.254 | cdh3 |
4.1 在三台機器上重復執行#3操作,且驗證是否安裝成功
4.2 三台機器修改配置文件/etc/clickhouse-server/config.xml
vim /etc/clickhouse-server/config.xml
#先修改 tcp_port 為 6000, 因為這個端口和 HDFS 的沖突了
<tcp_port>6000</tcp_port>
#listen_host 表示能監聽的主機,:: 表示任意主機都可以訪問
<listen_host>::</listen_host>
4.3 添加集群配置(在三台機器的etc目錄下新建metrika.xml文件)
Tips:注釋非常重要,涉及到的其他文件的配置要去查看是否應用,不然查不到
#在三台機器的etc目錄下新建metrika.xml文件
<yandex>
<!-- /etc/clickhouse-server/config.xml 中配置的remote_servers的incl屬性值,<remote_servers incl="clickhouse_remote_servers"> -->
<clickhouse_remote_servers>
<!-- 3分片2備份 -->
<perftest_3shards_2replicas>
<!-- 數據分片1 -->
<shard>
<internal_replication>true</internal_replication>
<replica>
<!-- 和下邊的<mecros>對應 -->
<host>cdh1</host>
<!-- 和 /etc/clickhouse-server/config.xml 中的 <tcp_port>6000</tcp_port>對應 -->
<port>6000</port>
<user>default</user>
<!-- 和 /etc/clickhouse-server/config.xml 中的 <<password>對應 -->
<password>clickhouse@123</password>
</replica>
</shard>
<!-- 數據分片2 -->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>cdh2</host>
<port>6000</port>
<user>default</user>
<password>clickhouse@123</password>
</replica>
</shard>
<!-- 數據分片3 -->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>cdh3</host>
<port>6000</port>
<user>default</user>
<password>clickhouse@123</password>
</replica>
</shard>
</perftest_3shards_2replicas>
</clickhouse_remote_servers>
<!--zookeeper相關配置-->
<!-- /etc/clickhouse-server/config.xml 中配置的zookeeper的incl屬性值,<zookeeper incl="zookeeper-servers" optional="true" /> -->
<zookeeper-servers>
<node index="1">
<host>cdh1</host>
<port>2181</port>
</node>
<node index="2">
<host>cdh2</host>
<port>2181</port>
</node>
<node index="3">
<host>cdh3</host>
<port>2181</port>
</node>
</zookeeper-servers>
<!-- replica代表每個節點在集群中的id不能夠重復 -->
<macros>
<replica>cdh1</replica>
</macros>
<!-- ::/0代表所有網絡都可以訪問 -->
<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>
4.4 重啟所有節點的clinkhouse服務
sudo systemctl restart clickhouse-server
sudo systemctl status clickhouse-server
4.5 查看集群是否配置成功
sudo clickhouse-client --port 6000
select * from system.clusters