1、druid的是什麼?
druid是針對時間序列數據提供低延遲的數據寫入以及快速交互式查詢的分佈式OLAP數據庫。
2、druid的優點:
2.1:集群擴展方便;
2.2:支持數據批量和實時導入兩種方式;
2.3:數據在導入的時候進行了預聚合,節約數據存儲空間提高查詢效率;
2.4:對於大部分的場景可以做到亞秒級響應。
3、缺點:
3.1:druid不支持join操作;
3.2:druid在大數據量的情況下,對查詢明細數據有瓶頸。
4、軟件準備
apache-druid-0.16.1-incubating-bin.tar.gz 最新為0.17版本。
5、虛擬機三臺,分別是192.168.116.3,192.168.116.4,192.168.116.5
6、上傳壓縮包到虛擬機,並解壓
tar -zxvf apache-druid-0.16.1-incubating-bin.tar.gz
重命名
mv apache-druid-0.16.1-incubating-bin druid-0.16.1 (見上圖所示)
7、修改公共配置
公共配置在/usr/local/src/druid-0.16.1/conf/druid/cluster/_common,我們需要編輯common.runtime.properties文件 ,下面主要是我們修改的重要配置,其它配置保留默認即可:
(1)配置兩個啟動加載的擴展。一個是HDFS存儲,一個是MySQL元數據
druid.extensions.loadList=["druid-kafka-indexing-service", "druid-datasketches", "mysql-metadata-storage","druid-hdfs-storage"]
(2)配置主機名
druid.host=mini1
(3)配置Zookeeper地址
druid.zk.service.host=mini1:2181,mini2:2181,mini3:2181
druid.zk.paths.base=/usr/local/src/druid-0.16.1/druid
(4)配置 Metastore存儲信息
druid.metadata.storage.type=mysql
druid.metadata.storage.connector.connectURI=jdbc:mysql://mini1:3306/druid
druid.metadata.storage.connector.user=root
druid.metadata.storage.connector.password=hadoop
注意:mysql需要提前安裝好,並且數據庫druid要提前創建好並且指定utf-8編碼;
(5)配置底層存儲。路徑是HDFS路徑
druid.storage.type=hdfs
druid.storage.storageDirectory=/druid/segments
(6)配置indexingservice服務的日誌存儲路徑,路徑是HDFS路徑。
druid.indexer.logs.type=hdfs
druid.indexer.logs.directory=/druid/indexing-logs
(7)因為我們會使用到hdfs作為底層存儲所以我們需要告知druid hadoop集群的相關信息,所以
我們需要把hadoop相關的配置文件複製到conf/druid/_common/目錄中;
hdfs-site.xml,core-site.xml,mapred-site.xml,yarn-site.xml四個配置文件 。
8、historical配置
配置文件在/usr/local/src/druid-0.16.1/conf/druid/cluster/data/historical,先配置jvm.config,再配置runtime.properties
(1)、jvm.config
(2)、runtime.properties
druid.service=druid/historical
druid.plaintextPort=18083
9、 middleManager的配置
配置文件在/usr/local/src/druid-0.16.1/conf/druid/cluster/data/middleManager 路徑下,兩個配置文件
(1)、 jvm.config
同上
(2)、runtime.properties
druid.service=druid/middleManager
druid.plaintextPort=18091
10、broker配置
目錄:/usr/local/src/druid-0.16.1/conf/druid/cluster/query/broker
(1)、jvm.config
同上
(2)、runtime.properties
druid.service=druid/broker
druid.plaintextPort=18082
11、router配置
目錄:/usr/local/src/druid-0.16.1/conf/druid/cluster/query/router
(1)、jvm.config
(2)、runtime.properties
12、router配置
(1)、jvm.config
(2)、runtime.properties
13、 coordinator-overlord 配置
目錄:/usr/local/src/druid-0.16.1/conf/druid/cluster/master/coordinator-overlord
(1)、jvm.config
同上
(2)、runtime.properties
14、啟動druid集群
高版本
mini1: nohup bin/start-cluster-master-no-zk-server >log/coordinator-overlord.log 2>&1 &
mini2: nohup bin/start-cluster-data-server > log/historical-middleManager.log 2>&1 &
mini3:nohup bin/start-cluster-query-server >log/broker-router.log 2>&1 &
搭建成功。
web界面訪問:
總結:druid的查詢效率還是不錯的,當然這是查詢的明細數據,沒有做預聚合,如果用於到生產環境中還需要大量的測試(預聚合和沒有聚合數據的對比以等等測試)。
閱讀更多 恆臣 的文章