天天看點

大資料Apache Druid(三):Druid叢集搭建

大資料Apache Druid(三):Druid叢集搭建

文章目錄

​​Druid叢集搭建​​

​​一、叢集搭建​​

​​1、節點劃分​​

​​2、Druid安裝包下載下傳​​

​​3、上傳安裝包,解壓并配置​​

​​4、配置記憶體​​

​​5、mysql中建立druid庫及上傳mysql驅動包​​

​​6、準備HDFS配置檔案​​

​​7、将安裝包分發到node4,node5節點上,并修改host​​

​​8、在node3、node4、node5節點上配置Druid環境變量​​

​​二、Druid叢集啟動​​

​​1、啟動zookeeper叢集​​

​​2、啟動HDFS叢集​​

​​3、Druid各個節點啟動對應服務​​

​​4、檢視叢集webui​​

Druid叢集搭建

一、叢集搭建

Druid程序可以以任意方式進行部署,為了友善部署,建議分為三種伺服器類型:主伺服器(Master)、查詢伺服器(Query)、資料伺服器(Data)。

  • Master:運作Coordinator和Overlord程序,負責叢集可用和讀取資料。
  • Query:運作Broker和Router程序,負責處理外部用戶端的查詢。
  • Data:運作Historical和Middle Manager程序,負責資料接收和所有可查詢資料的存儲。

我們按照以上方式來進行Druid叢集的搭建。步驟如下:

1、節點劃分

節點IP 節點名稱 角色
192.168.179.6 node3 zk,Druid Master(overload,coordinator)
192.168.179.7 node4 zk,Druid Data(middleManager,historical)
192.168.179.8 node5 zk,Druid Query(broker,router)

2、Druid安裝包下載下傳

Druid安裝包下載下傳位址:http://druid.apache.org/downloads.html

選擇具體的Druid安裝包下載下傳位址:

​​https://archive.apache.org/dist/druid/​​

這裡我們下載下傳Druid 0.21.1版本

大資料Apache Druid(三):Druid叢集搭建

注意:經過測試,Druid0.20.1 版本有bug(在搭建好Druid後,相應的叢集内容查詢缺少字段導緻報錯),盡量下載下傳0.21.1版本。

3、上傳安裝包,解壓并配置

将安裝包首先上傳到node3節點“/software”目錄下,并解壓

[root@node3 ~]# cd /software/
[root@node3 software]# tar -zxvf ./apache-druid-0.21.1-bin.tar.gz      

進入“/software/apache-druid-0.21.1/conf/druid/cluster/_common”

配置common.runtime.properties檔案如下:

#由于需要mysql存儲中繼資料,添加“mysql-metadata-storage”外部元件
druid.extensions.loadList=["druid-hdfs-storage", "druid-kafka-indexing-service", "druid-datasketches","mysql-metadata-storage"]

#
# Hostname
#
#配置Master 節點為node3
druid.host=node3

#
# Zookeeper
#
#配置zookeeper叢集,這裡使用外部叢集
druid.zk.service.host=node3:2181,node4:2181,node5:2181
druid.zk.paths.base=/druid

#
# Metadata storage
#
#配置Metadata Storage存儲使用mysql存儲,首先注釋掉預設的derby,再配置#mysql存儲
# For Derby server on your Druid Coordinator (only viable in a cluster with a single Coordinator, no fail-over):
#druid.metadata.storage.type=derby
#druid.metadata.storage.connector.connectURI=jdbc:derby://localhost:1527/var/druid/metadata.db;create=true
#druid.metadata.storage.connector.host=localhost
#druid.metadata.storage.connector.port=1527

# For MySQL (make sure to include the MySQL JDBC driver on the classpath):
druid.metadata.storage.type=mysql
druid.metadata.storage.connector.connectURI=jdbc:mysql://node2:3306/druid
druid.metadata.storage.connector.user=root
druid.metadata.storage.connector.password=123456

#
# Deep storage
#
#配置Deep Storage存儲使用HDFS,首先注釋掉預設本地配置再配置HDFS
# For local disk (only viable in a cluster if this is a network mount):
#druid.storage.type=local
#druid.storage.storageDirectory=var/druid/segments

# For HDFS:
druid.storage.type=hdfs
druid.storage.storageDirectory=hdfs://mycluster/druid/segments


#
# Indexing service logs
#
# 配置索引資料存儲使用HDFS,首先注釋掉預設本地配置,再配置HDFS
# For local disk (only viable in a cluster if this is a network mount):
#druid.indexer.logs.type=file
#druid.indexer.logs.directory=var/druid/indexing-logs

# For HDFS:
druid.indexer.logs.type=hdfs
druid.indexer.logs.directory=hdfs://mycluster/druid/indexing-logs      

4、配置記憶體

由于Druid預設一些程序使用記憶體至少8G或者64G記憶體,我們記憶體不夠是以這裡設定下對應角色使用的記憶體少一些。修改具體如下:

修改Coordinator-overlord的jvm記憶體:

#vim /software/apache-druid-0.21.1/conf/druid/cluster/master/coordinator-overlord/jvm.config

-Xms512m
-Xmx512m      

修改historical的jvm記憶體:

#vim /software/apache-druid-0.21.1/conf/druid/cluster/data/historical/jvm.config

-Xms512m
-Xmx512m
-XX:MaxDirectMemorySize=128m      

修改historical緩存資料量大小:

#vim /software/apache-druid-0.21.1/conf/druid/cluster/data/historical/runtime.properties

#druid.processing.buffer.sizeBytes=500MiB
druid.processing.buffer.sizeBytes=5000000

#druid.cache.sizeInBytes=256MiB
druid.cache.sizeInBytes=2560000      

修改middleManager緩存資料量大小:

#vim /software/apache-druid-0.21.1/conf/druid/cluster/data/middleManager/runtime.properties

#druid.indexer.fork.property.druid.processing.buffer.sizeBytes=100MiB
druid.indexer.fork.property.druid.processing.buffer.sizeBytes=1000000      

修改broker的jvm記憶體:

#vim /software/apache-druid-0.21.1/conf/druid/cluster/query/broker/jvm.config

-Xms512m
-Xmx512m
-XX:MaxDirectMemorySize=128m      

修改broker 讀取資料緩存大小:

#vim /software/apache-druid-0.21.1/conf/druid/cluster/query/broker/runtime.properties

#druid.processing.buffer.sizeBytes=500MiB
druid.processing.buffer.sizeBytes=5000000      

修改router使用的jvm記憶體:

#vim /software/apache-druid-0.21.1/conf/druid/cluster/query/router/jvm.config

-Xms512m
-Xmx512m      

5、mysql中建立druid庫及上傳mysql驅動包

由于Druid使用MySQL存儲中繼資料,并且配置中使用的是MySQL中druid庫,這裡在node2 MySQL節點建立對應庫:

[root@node2 ~]# mysql -u root -p123456
mysql> CREATE DATABASE druid DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.01 sec)      

建立完成之後,将mysql 驅動包上傳到node3“/software/apache-druid-0.21.1/extensions/mysql-metadata-storage”路徑下。

6、準備HDFS配置檔案

由于将Segment和索引資料存放在HDFS中,Druid需要連接配接HDFS,需要Hadoop中相關配置檔案,在node3“/software/apache-druid-0.21.1/conf/druid/cluster/_common”目錄下建立目錄“hadoop-xml”,将Hadoop中core-site.xml、hdfs-site.xml複制到“hadoop-xml”目錄中。

7、将安裝包分發到node4,node5節點上,并修改host

将node3安裝包分發node4,node5節點:

[root@node3 software]# scp -r ./apache-druid-0.21.1 node4:/software/
[root@node3 software]# scp -r ./apache-druid-0.21.1 node5:/software/      

上傳完成後,在node4,node5對應節點檔案“/software/apache-druid-0.21.1/conf/druid/cluster/_common/common.runtime.properties”中修改對應的host:

#node4節點指定為 Data節點
#
# Hostname
#
druid.host=node4


#node5節點指定為Query節點
#
# Hostname
#
druid.host=node5      

8、在node3、node4、node5節點上配置Druid環境變量

#vim /etc/profile
export DRUID_HOME=/software/apache-druid-0.21.1/
export PATH=$PATH:$DRUID_HOME/bin

#使profile生效
source /etc/profile      

二、Druid叢集啟動

1、啟動zookeeper叢集

在zookeeper各個節點上啟動zookeeper叢集:zkServer.sh start

2、啟動HDFS叢集

由于資料存儲及索引資料使用HDFS存儲,是以需要啟動HDFS叢集。

3、Druid各個節點啟動對應服務

在node3、node4、node5上啟動對應Druid的Master、Data、Query服務。

#node3 啟動Master 服務
[root@node3 ~]# start-cluster-master-no-zk-server

#node4啟動Data 服務
[root@node4 _common]# start-cluster-data-server

#node5啟動Query服務
[root@node5 ~]# start-cluster-query-server      

4、檢視叢集webui

  • 📢歡迎點贊 👍 收藏 ⭐留言 📝 如有錯誤敬請指正!
  • 📢本文由 Lansonli 原創,
  • 📢停下休息的時候不要忘了别人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活✨