1. 程式人生 > >Druid學習筆記(3)Druid部署總結

Druid學習筆記(3)Druid部署總結

介紹

前面幾個章節對Druid的整體架構做了簡單的說明,本文主要描述如何部署Druid的環境

Imply提供了一套完整的部署方式,包括依賴庫,Druid,圖形化的資料展示頁面,SQL查詢元件等。本文將基於Imply套件進行說明

單機部署

依賴

  • Java 8 or better
  • Node.js 4.5.x or better
  • Linux, Mac OS X, or other Unix-like OS (Windows is not supported)
  • At least 4GB of RAM

下載與安裝

  1. https://imply.io/get-started
    下載最新版本安裝包
  2. tar -xzf imply-2.3.9.tar.gz
  3. cd imply-2.3.9

目錄說明如下:
- bin/ - run scripts for included software.
- conf/ - template configurations for a clustered setup.
- conf-quickstart/* - configurations for the single-machine quickstart.
- dist/ - all included software.
- quickstart/ - files related to the single-machine quickstart.

啟動服務


bin/supervise -c conf/supervise/quickstart.conf

安裝驗證

匯入測試資料

安裝包中包含一些測試的資料,可以通過執行預先定義好的資料說明檔案進行匯入

bin/post-index-task --file quickstart/wikiticker-index.json

視覺化控制檯

資料展示與查詢

  1. 資料展示:對渠道進行統計的柱狀圖

這裡寫圖片描述

  1. SQL資料查詢:使用sql查詢編輯次數最多的10個page

這裡寫圖片描述

  1. HTTP POST資料查詢

命令:curl -L -H’Content-Type: application/json’ -XPOST –data-binary @quickstart/wikiticker-top-pages.json http://localhost:8082/druid/v2?pretty
結果:

[ {
  "timestamp" : "2016-06-27T00:00:11.080Z",
  "result" : [ {
    "edits" : 29,
    "page" : "Copa América Centenario"
  }, {
    "edits" : 16,
    "page" : "User:Cyde/List of candidates for speedy deletion/Subpage"
  },
  ..........
  {
    "edits" : 8,
    "page" : "World Deaf Championships"
  } ]
} ]

叢集部署

叢集配置的規劃需要根據需求來定製,下面以一個開發環境機器搭建為例,描述如何搭建一個有HA特性的Druid叢集.

叢集部署有以下幾點需要說明
1. 為了保證HA,主節點部署兩臺
2. 管理節點與查詢節點可以考慮多核大記憶體的機器

部署規劃

角色 機器 配置 叢集角色
主節點 10.5.24.137 8C16G Coordinator,Overlord
主節點 10.5.24.138 8C16G Coordinator,Overlord
資料節點,查詢節點 10.5.24.139 8C16G Historical, MiddleManager, Tranquility,Broker,Pivot Web
資料節點,查詢節點 10.5.24.140 8C16G Historical, MiddleManager, Tranquility,(資料節點,查詢節點)Broker

部署步驟

公共配置

編輯conf/druid/_common/common.runtime.properties 檔案內容
1. loadList配置:==此處需要統一在一個位置統一定義,否則會出現extension載入的問題==

druid.extensions.loadList=["mysql-metadata-storage","druid-hdfs-storage"]
  1. Zookeeper
#
# Zookeeper
#

druid.zk.service.host=native-lufanfeng-2-5-24-138:2181,native-lufanfeng-3-5-24-139:2181,native-lufanfeng-4-5-24-140:2181
druid.zk.paths.base=/druid
  1. MetaData:使用Mysql
# For MySQL:

druid.metadata.storage.type=mysql
druid.metadata.storage.connector.connectURI=jdbc:mysql://10.5.24.151:3306/druid
druid.metadata.storage.connector.user=root
druid.metadata.storage.connector.password=123456
  1. Deepstorage:使用HDFS


#druid.storage.type=local
#druid.storage.storageDirectory=var/druid/segments

druid.storage.type=hdfs
druid.storage.storageDirectory=hdfs://10.5.24.137:9000/druid/segments

#druid.indexer.logs.type=file
#druid.indexer.logs.directory=var/druid/indexing-logs

druid.indexer.logs.type=hdfs
druid.indexer.logs.directory=hdfs://10.5.24.137:9000/druid/indexing-logs

主節點配置

  1. 建立配置檔案:cp conf/supervise/master-no-zk.conf conf/supervise/master.conf
  2. 編輯master.conf 內容如下:
:verify bin/verify-java
:verify bin/verify-version-check

coordinator bin/run-druid coordinator conf
!p80 overlord bin/run-druid overlord conf
  1. 目前的版本中,mysql-metadata-storage沒有包含在預設的安裝包中,如果使用mysql儲存元資料,需要單獨安裝下對應的擴充套件,是用下列命令在兩個master節點上對需要用到的擴充套件進行安裝:
root@native-lufanfeng-1-5-24-137:~/imply-2.3.8# java -classpath "dist/druid/lib/*"  -Ddruid.extensions.directory="dist/druid/extensions" io.druid.cli.Main tools pull-deps  -c io.druid.extensions:mysql-metadata-storage:0.10.1 -c io.druid.extensions.contrib:druid-rabbitmq:0.10.1 -h org.apache.hadoop:hadoop-client:2.7.0

==預設mysql-metadata-storage帶的mysql驅動是針對Mysql 5.1的,如果使用Mysql的版本是5.5 或是其他版本,可能會出現”Communications link failure”的錯誤,此時需要更新Mysql的驅動。==

  1. 在10.5.24.137/138上啟動master相關服務:nohup bin/supervise -c conf/supervise/master.conf > master.log &

資料節點與查詢節點配置

  1. 安裝NodeJS:apt-get install nodejs
  2. 建立配置檔案:vim conf/supervise/data-with-query.conf
  3. 編輯data-with-query.conf 內容如下:
:verify bin/verify-java
:verify bin/verify-node
:verify bin/verify-version-check

broker bin/run-druid broker conf
imply-ui bin/run-imply-ui conf


historical bin/run-druid historical conf
middleManager bin/run-druid middleManager conf

# Uncomment to use Tranquility Server
#!p95 tranquility-server bin/tranquility server -configFile conf/tranquility/server.json

# Uncomment to use Tranquility Kafka
#!p95 tranquility-kafka bin/tranquility kafka -configFile conf/tranquility/kafka.json
  1. 對於叢集模式,pivot的配置檔案必須調整為mysql,sqllite會導致無法檢視datasource,修改conf/pivot/config.xml檔案
settingsLocation:
  location: mysql
  uri: 'mysql://root:[email protected]:3306/druid'
  table: 'pivot_state'
  initialSettings:
  clusters:
    - name: druid
      type: druid
      host: localhost:8082
  1. 在10.5.24.139/140兩臺機器上分別執行:nohup bin/supervise -c conf/supervise/data-with-query.conf > data-with-query.log &

驗證

視覺化控制檯