1.配置DeepStorgemysql
Druid的Deep Storge的存儲支持包括Local、S三、HDFS在內的三種,能夠經過"$confDir/_common/common.runtime.properties"文件進行配置。這裏我選擇使用HDFS做爲DeepStorge的底層存儲,Druid使用HDFS做爲底層存儲須要添加Hadoop的擴展(發行版的Druid默認集成了Hadoop的擴展),而且將Hadoop集羣的配置文件(core-site.xm、hdfs-site.xml、mapred-site.xml、yarn-site.xml)拷貝到Druid的"$confDir/_common/"下,固然若是這些文件能夠在經過classpath環境變量找到也是能夠的。sql
druid.storage.type=hdfs druid.storage.storageDirectory=/druid/segments
固然一旦選擇的HDFS做爲底層存儲,推薦將日誌的存儲也配置爲HDFS。數據庫
druid.indexer.logs.type=hdfs druid.indexer.logs.directory=/druid/indexing-logs
最後別忘了在druid.extensions.loadList屬性中添加hdfs的支持,這個屬性的參數是一個數組,數據元素爲Druid啓動時所須要加載的擴展內容數組
druid.extensions.loadList=["druid-hdfs-storage"]
PS:若是不知道須要加載的擴展內容叫什麼,其實有個簡單的方式能夠確認,加載的擴展內容名稱與"$DruidRootDir/extensions/"裏面的文件夾名相同,固然若是須要其餘發行版所沒有默認集成的擴展包,也須要把擴展包複製到這個文件中。bash
2.配置Metadata Storgejvm
Druid的默認Metadata Storge使用的數據庫是Derby,能夠選擇的被選方案包括Mysql、PostgerSQL。Derby和PostgreSQL的擴展都是默認集成的,若是須要使用Mysql做爲Metadata Storge,則須要在官網額外下載擴展,並解壓複製到"$DruidRootDir/extensions/"中。下載mysql-metadata-storgeoop
相應的配置比較簡單ui
druid.metadata.storage.type=mysql druid.metadata.storage.connector.connectURI=jdbc:mysql://localhost:3306/druid druid.metadata.storage.connector.user=druid druid.metadata.storage.connector.password=diurd
固然前提條件是在Mysql中有對應的數據庫和用戶,若是沒有須要建立 spa
-- create a druid database, make sure to use utf8 as encoding CREATE DATABASE druid DEFAULT CHARACTER SET utf8; -- create a druid user, and grant it all permission on the database we just created GRANT ALL ON druid.* TO 'druid'@'localhost' IDENTIFIED BY 'diurd';
3.配置Zookeeper日誌
druid.zk.service.host=zk.host.ip druid.zk.paths.base=/druid
4.啓動Druid
若是是全新部署的Druid,須要先運行
$DruidRootDir/bin/init
啓動時能夠根據不一樣的集羣規劃在不一樣的機器上運行Druid的各個組建,啓動以前須要查看各組件的jvm.config文件中的配置,確保有足夠的內存啓動。
其中尤其須要注意的historical/jvm.config中的-XX:MaxDirectMemorySize=4096m這個配置,XX:MaxDirectMemorySize的大小不能隨意設置,須要計算,具體的計算公式爲:
XX:MaxDirectMemorySize = druid.processing.buffer.sizeBytes[536,870,912] * (druid.processing.numMergeBuffers[2] + druid.processing.numThreads[7] + 1)
PS:其中[]中的值爲默認值,若是機器內存不足須要在historical/runtime.properties和broker/runtime.properties文件中進行配置。
druid.processing.buffer.sizeBytes=536,870,912 druid.processing.numMergeBuffers=2 druid.processing.numThreads=7
PS:默認配置中,所需的內存計算結果爲5GB
#啓動historical $DruidRootDir/bin/historical.sh start #啓動broker $DruidRootDir/bin/broker.sh start #啓動coordinator $DruidRootDir/bin/coordinator.sh start #啓動overlord $DruidRootDir/bin/overlord.sh start #啓動middleManager $DruidRootDir/bin/middleManager.sh start
啓動日誌能夠在$DruidRootDir/log文件夾中查看
5.Druid啓動的相關端口
8081 (Coordinator) 8082 (Broker) 8083 (Historical) 8084 (Standalone Realtime, if used) 8088 (Router, if used) 8090 (Overlord) 8091, 8100–8199 (Druid Middle Manager; 若是Druid的work不少,則須要的端口可能要比8199更大) 8200 (Tranquility Server, if used)