Druid實時大數據分析安裝和配置(四)

前面幾篇文章咱們初識了Druid,下面咱們就愉快的安裝吧。。。

JAVA8安裝

官網自行下載

Druid下載

下載地址:https://druid.apache.org/downloads.html


Zookeeper 的安裝

下載地址:http://www.apache.org/dyn/closer.cgi/zookeeper

單機版安裝部署

1.將安裝包上傳到服務器,並解壓安裝

tar -xzf apache-druid-0.16.0-incubating-bin.tar.gz -C /data

2.下載zookeeper安裝包上傳到服務器,並解壓安裝包到druid的根目錄,並重名為zk

tar -xzf zookeeper-3.4.6.tar.gz -C /data/apache-druid-0.16.0-incubating

mv /data/apache-druid-0.16.0-incubating/zookeeper-3.4.6 /data /apache-druid-0.16.0-incubating/zk

3.進入druid的安裝目錄,執行單機啟動腳本

cd /data/apache-druid-0.16.0-incubating

./bin/start-micro-quickstart

4.訪問http://localhost:8888 查看druid管理界面

Druid實時大數據分析安裝和配置(四)

Druid離線安裝

本節以imply-1.3.1.tar.gz(Druid版本為0.9.1.1)為例,外部依賴採用默認配置。

DeepStorage->本地存儲

Metadata Storage->Derby

Zookeeper->Imply安裝包自帶的zk服務”


1. 服務安裝與啟動

curl -O https://static.imply.io/release/imply-1.3.1.tar.gz

tar -xzf imply-1.3.1.tar.gz

cd imply-1.3.1

nohup bin/supervise -c conf/supervise/quickstart.conf > quickstart.log &”

2.服務停止與重啟

bin/service --down

bin/service --restart ${服務名稱}

安裝與規劃:


Druid實時大數據分析安裝和配置(四)

由於Druid採用分佈式設計,其中不同類型的節點各司其職,故在實際部署集群環境中首先需要對各類節點進行統一規劃,從功能上劃分為以下3個部分。

Master:管理節點,包含協調節點和統治節點,負責管理數據寫入任務及容錯相關處理。

Data:數據節點,包含歷史節點和中間管理者,負責數據寫入處理、歷史數據的加載與查詢。

Query:查詢節點,包含查詢節點和Pivot Web界面,負責提供數據查詢接口和Web交互式查詢功能。

在實際部署中,一方面,考慮到容錯性問題,至少需要部署兩個管理節點作為互備;另一方面,由於Druid支持橫向擴展,故在使用初期考慮到機器資源有限,可以將管理節點和查詢節點混合部署在同一臺物理機器上,同時為了加速熱點數據的查詢,可以考慮加上歷史節點,利用分層特性把小部分熱點數據源放在管理節點所在機器上的歷史節點中。而在部署機器選擇上,管理節點和查詢節點考慮選用多核大內存機器,比如16核CPU和64GB內存。由於數據節點還涉及歷史數據的本地緩存,故需要更大的磁盤空間,若想獲得更優的性能,推薦使用SSD存儲設備。

數據節點配置調優

historical與middleManager配置:

JVM內存使用-Xmx和-Xms

druid.server.http.numThreads

druid.processing.buffer.sizeBytes

druid.processing.numThreads

druid.query.groupBy.maxIntermediateRows

druid.query.groupBy.maxResults

druid.server.maxSize和druid.segmentCache.locations(historical)

druid.worker.capacity(middleManager)

druid.server.tier(默認為_default_tier,自定義名稱可以對數據存儲做分層處理)

druid.server.priority(定義層對應的查詢優先級)

查詢節點配置調優

broker相關配置:

JVM內存使用-Xmx和-Xms

druid.server.http.numThreads

druid.cache.sizeInBytes

druid.processing.buffer.sizeBytes

druid.processing.numThreads

druid.query.groupBy.maxIntermediateRows

druid.query.groupBy.maxResults

配置說明如下。

Druid中查詢節點和歷史節點都提供了針對查詢的本地LRU緩存機制,在配置方面broker和historical只需要在一種節點上開啟緩存即可,推薦小集群(<20臺機器)在查詢節點上開啟查詢緩存,大集群在歷史節點上開啟查詢緩存。

併發性能的調優更多的是通過調整相關處理的線程數來實現,查詢涉及多個數據文件(Segment)的計算時,通常一個數據文件對應一個處理線程。

節點規劃

這裡以實際應用部署為例,機器類型分為以下兩種。

Master機器:64GB內存、16核CPU、250GB磁盤空間。

Data機器:64GB內存、24核CPU、1TB磁盤空間。

初始搭建Druid集群選取Master機器2臺、Data機器3臺,其中Master機器作為管理和查詢節點,Data機器作為數據節點,分別部署服務如下。

備註:考慮到時區問題,所有Druid相關的服務時區需要設置一致,這裡統一配置為UTC+0800。


安裝完成進行如下操作:

curl -L -H'Content-Type: application/json' -XPOST --data-binary @quickstart/wikipedia-top-pages.json http://localhost:8082/druid/v2/?pretty


bin/plyql --host localhost:8082 -v -q "SELECT page, SUM(count) AS Edits FROM wikiticker WHERE '2016-06-27T00:00:00' <= __time AND __time < '2016-06-28T00:00:00' GROUP BY page ORDER BY Edits DESC LIMIT 5


bin/generate-example-metrics | curl -XPOST -H'Content-Type: application/json' --data-binary @- http://localhost:8200/v1/post/metrics


分享到:


相關文章: