在Druid快速入門其實已經簡單的介紹過最簡化配置的單節點部署,本文我們將詳細描述Druid的多種部署方式,對於測試開發環境可以選用輕量的單機部署方式,而生產環境我們最好選用集群部署的方式,確保系統的高可用性。 一、單機部署 Druid提供了一組可以參考的配置和單機部署的啟動腳本。 尺寸適合筆記本電 ...
在Druid快速入門其實已經簡單的介紹過最簡化配置的單節點部署,本文我們將詳細描述Druid的多種部署方式,對於測試開發環境可以選用輕量的單機部署方式,而生產環境我們最好選用集群部署的方式,確保系統的高可用性。
一、單機部署
Druid提供了一組可以參考的配置和單機部署的啟動腳本。
nano-quickstart
micro-quickstart
small
medium
large
xlarge
micro-quickstart
尺寸適合筆記本電腦等小型機器,目的是用於快速評估使用情況。
nano-quickstart
適合更小的配置,面向具有1個CPU和4GB記憶體的電腦。它旨在在資源受限的環境(例如小型Docker容器)中進行有限的評估。
單伺服器參考配置
Nano-Quickstart:1個CPU,4GB RAM
- 啟動命令:
bin/start-nano-quickstart
- 配置目錄:
conf/druid/single-server/nano-quickstart
微型快速入門:4個CPU,16GB RAM
- 啟動命令:
bin/start-micro-quickstart
- 配置目錄:
conf/druid/single-server/micro-quickstart
小型:8 CPU,64GB RAM(〜i3.2xlarge)
- 啟動命令:
bin/start-small
- 配置目錄:
conf/druid/single-server/small
中:16 CPU,128GB RAM(〜i3.4xlarge)
- 啟動命令:
bin/start-medium
- 配置目錄:
conf/druid/single-server/medium
大型:32 CPU,256GB RAM(〜i3.8xlarge)
- 啟動命令:
bin/start-large
- 配置目錄:
conf/druid/single-server/large
大型X:64 CPU,512GB RAM(〜i3.16xlarge)
- 啟動命令:
bin/start-xlarge
- 配置目錄:
conf/druid/single-server/xlarge
雖然為大型機器也準備了配置,但是官方還是建議大型的系統採用集群模式部署,
以實現容錯和減少資源爭用。
二、集群部署
部署建議
集群部署採用的分配如下:
- 主節點部署 Coordinator 和 Overlord進程
- 兩個數據節點運行 Historical 和 MiddleManager進程
- 一個查詢節點 部署Broker 和 Router進程
未來我們可以添加更多的主節點和查詢節點
主節點建議 8vCPU 32GB記憶體
配置文件位於
conf/druid/cluster/master
數據節點建議
16 vCPU 122GB記憶體 2 * 1.9TB SSD
配置文件位於
conf/druid/cluster/data
查詢伺服器 建議 8vCPU 32GB記憶體
配置文件位於
conf/druid/cluster/query
開始部署
下載最新0.17.0發行版
解壓
tar -xzf apache-druid-0.17.0-bin.tar.gz
cd apache-druid-0.17.0
集群模式的主要配置文件都位於:
conf/druid/cluster
配置元數據存儲
conf/druid/cluster/_common/common.runtime.properties
替換
druid.metadata.storage.connector.connectURI
druid.metadata.storage.connector.host
例如配置mysql為元數據存儲
在mysql中配置好訪問許可權:
-- create a druid database, make sure to use utf8mb4 as encoding
CREATE DATABASE druid DEFAULT CHARACTER SET utf8mb4;
-- create a druid user
CREATE USER 'druid'@'localhost' IDENTIFIED BY 'druid';
-- grant the user all the permissions on the database we just created
GRANT ALL PRIVILEGES ON druid.* TO 'druid'@'localhost';
在druid中配置
druid.extensions.loadList=["mysql-metadata-storage"]
druid.metadata.storage.type=mysql
druid.metadata.storage.connector.connectURI=jdbc:mysql://<host>/druid
druid.metadata.storage.connector.user=druid
druid.metadata.storage.connector.password=diurd
配置深度存儲
將數據存儲配置為S3或者HDFS
比如配置HDFS,修改
conf/druid/cluster/_common/common.runtime.properties
druid.extensions.loadList=["druid-hdfs-storage"]
#druid.storage.type=local
#druid.storage.storageDirectory=var/druid/segments
druid.storage.type=hdfs
druid.storage.storageDirectory=/druid/segments
#druid.indexer.logs.type=file
#druid.indexer.logs.directory=var/druid/indexing-logs
druid.indexer.logs.type=hdfs
druid.indexer.logs.directory=/druid/indexing-logs
將Hadoop配置XML(core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml)放在Druid中
conf/druid/cluster/_common/
配置zookeeper連接
還是修改
conf/druid/cluster/_common/
下的
druid.zk.service.host
為zk伺服器地址就可以了
啟動集群
啟動前註意打開埠限制
主節點:
derby 1527
zk 2181
Coordinator 8081
Overlord 8090
數據節點:
Historical 8083
Middle Manager 8091, 8100–8199
查詢節點:
Broker 8082
Router 8088
記得將剛纔配好的druid複製到各個節點
啟動主節點
由於我們使用外部zk 所以使用no-zk啟動
bin/start-cluster-master-no-zk-server
啟動數據伺服器
bin/start-cluster-data-server
啟動查詢伺服器
bin/start-cluster-query-server
這樣的話 集群就啟動成功了!
特別註意:多個機器的host不同 註意在common.runtime.properties中改成對應hostname
如果安裝過程中有失敗 可以考慮清空zk中的/druid 目錄 重新安裝
靜下心來,努力的提升自己,永遠都沒有錯。更多實時計算相關博文,歡迎關註實時流式計算