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
  • 1
  • 2

安裝驗證

導入測試數據

安裝包中包含一些測試的數據,可以通過執行預先定義好的數據說明文件進行導入

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

可視化控制檯

數據展示與查詢

  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"
  } ]
} ]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

集羣部署

集羣配置的規劃需要根據需求來定製,下面以一個開發環境機器搭建爲例,描述如何搭建一個有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
  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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  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
  • 2
  • 3
  • 4
  • 5
  • 6
  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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

主節點配置

  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
  • 2
  • 3
  • 4
  • 5
  • 6
  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
  • 1

==默認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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  1. 在10.5.24.139/140兩臺機器上分別執行:nohup bin/supervise -c conf/supervise/data-with-query.conf > data-with-query.log &

驗證

可視化控制檯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章