您好,登錄后才能下訂單哦!
這篇文章主要介紹“ClickHouse集群搭建的方法”,在日常操作中,相信很多人在ClickHouse集群搭建的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ClickHouse集群搭建的方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
ClickHouse是一個列導向數據庫,是原生的向量化執行引擎。它在大數據領域沒有走Hadoop生態,而是采用Local attached storage作為存儲,這樣整個IO可能就沒有Hadoop那一套的局限。它的系統在生產環境中可以應用到比較大的規模,因為它的線性擴展能力和可靠性保障能夠原生支持shard+replication這種解決方案。它還提供了一些SQL直接接口,有比較豐富的原生client。
ClickHouse數據庫的特點:
速度快ClickHouse性能超過了市面上大部分的列式存儲數據庫,相比傳統的數據ClickHouse要快100-1000倍,ClickHouse還是有非常大的優勢。1億數據集:ClickHouse比Vertica約快5倍,比Hive快279倍,比MySQL快801倍。10億數據集:ClickHouse比Vertica約快5倍,MySQL和Hive已經無法完成任務了。
功能多1.支持類SQL查詢;2.支持繁多庫函數(例如IP轉化,URL分析等,預估計算/HyperLoglog等);3.支持數組(Array)和嵌套數據結構(Nested Data Structure);4.支持數據庫異地復制部署。
要注意,由于ClickHouse的快速查詢還是基于系統資源的,因此在使用的時候要注意每個節點上的存儲量,以及節點機器的系統資源要充足。因為查詢時是使用內存進行聚合,所以同時并發查詢的數量不能太多,否則就會造成資源崩潰。
# 修改機器的hostname vi /etc/hostname # 配置hosts vi /etc/hosts 192.168.143.20 node1 192.168.143.21 node2 192.168.143.22 node3
修改完后,執行hostname node1...3,不用重啟機器使其生效
主要下載四個文件:
Clickhouse-client
Clickhouse-common-static
Clickhouse-server
clickhouse-server-common
rpm -ivh *.rpm
# 我這里選擇node1 docker run -d --net host --name zookeeper zookeeper
修改/etc/clickhouse-server/config.xml
<!-- 將下面行注釋去掉 --> <listen_host>::</listen_host> <!-- 修改默認數據存儲目錄,比如在/home下創建目錄clickhouse --> <path>/var/lib/clickhouse/</path> <!-- 修改為如下 --> <path>/home/clickhouse/</path>
修改/etc/clickhouse-server/users.xml
<!-- 配置查詢使用的內存,根據機器資源進行配置 --> <max_memory_usage>5000000000000</max_memory_usage> <!-- 在</users>前面增加用戶配置 --> <root> <!-- 通過Linux命令計算出密碼的sha256加密值 --> <password_sha256_hex>xxxx...xxxx</password_sha256_hex> <networks> <ip>::/0</ip> </networks> <profile>default</profile> <quota>default</quota> </root>
增加配置文件/etc/metrika.xml
<yandex> <!-- ck集群節點 --> <clickhouse_remote_servers> <test_cluster> <shard> <internal_replication>true</internal_replication> <replica> <host>node1</host> <port>9000</port> <user>root</user> <password>123456</password> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>node2</host> <port>9000</port> <user>root</user> <password>123456</password> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>node3</host> <port>9000</port> <user>root</user> <password>123456</password> </replica> </shard> </test_cluster> <!-- zookeeper相關配置--> <zookeeper-servers> <node index="1"> <host>node1</host> <port>2181</port> </node> </zookeeper-servers> <networks> <ip>::/0</ip> </networks> <macros> <replica>node1</replica> </macros> <!-- 壓縮相關配置 --> <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> </clickhouse_remote_servers> </yandex>
重啟clickhouse服務
service clickhouse-server restart # 如果不成功,則使用以下命令 nohup /usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml $
使用可視化工具連接每個節點,在上面創建MergeTree
create database test; create table test.data ( country String, province String, value String ) engine=MergeTree() partition by (country, province) order by value;
create table test.mo as test.data ENGINE = Distributed(test_cluster, test, data, rand());
安裝clickhouse-driver
pip install clickhouse-driver
執行命令
from clickhouse_driver import Client # 在哪個節點創建了分布式表,就連接哪個節點 client = Client('192.168.143.20', user='root', password='123456', database='test') print(client.execute('select count(*) from mo'))
到此,關于“ClickHouse集群搭建的方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。