Druid 集羣方式部署 —— 元數據和深度存儲

配置 metadata 存儲和深度存儲(deep storage)

 

1_7c2k29kJoDsmc91D0GV34g

 

從獨立服務器部署上合併到集羣

如果您已經有一個獨立服務器的部署實例,並且希望在整個遷移過程中保留數據,請在對元數據進行遷移之前先閱讀:

本指南中的元數據遷移是針對你將原數據存儲在 Derby 數據庫中,同時你的深度存儲也是使用的 Derby 數據庫。
如果你在單實例部署的服務器上已經使用了非 Derby 的數據庫存儲元數據或者分佈式深度存儲的那,那麼你可以在新的集羣環境中使用已經存在並且使用的存儲方案。

本指南還提供了從本地深度存儲中進行段合併的信息。
集羣環境的部署是需要配置深度存儲的,例如 S3 或 HDFS。
如果單實例部署已在使用分佈式深度存儲,則可以在新集羣中繼續使用當前的深度存儲。

元數據存儲

在 conf/druid/cluster/_common/common.runtime.properties 配置文件中,替換 “metadata.storage.*” 的的屬性來確定元數據存儲的服務器地址。
元數據通常是存儲在數據庫中的,因此你可以在這裏配置你的數據庫服務器地址。

  • druid.metadata.storage.connector.connectURI
  • druid.metadata.storage.connector.host

在實際的生產環境中,我們推薦你使用獨立的元數據存儲數據庫例如 MySQL 或者 PostgreSQL 來增加冗餘性。
這個配置將會在 Druid 服務器外部配置一個數據庫連接來保留一套元數據的配置信息,以增加數據冗餘性。

MySQL extension 和 PostgreSQL extension
頁面中有如何對擴展進行配置和對數據庫如何進行初始化的說明,請參考上面頁面中的內容。

深度存儲

Druid 依賴分佈式文件系統或者一個大對象(blob)存儲來對數據進行存儲。
最常用的深度存儲的實現通常使用的是 S3 (如果你使用的是 AWS 的話)或者 HDFS(如果你使用的是 Hadoop 部署的話)。

S3

在文件 conf/druid/cluster/_common/common.runtime.properties

  • 添加 “druid-s3-extensions” 到 druid.extensions.loadList
  • 在 “Deep Storage” 和 “Indexing service logs” 部分的配置中,註釋掉本地存儲的配置。
  • 在 “Deep Storage” 和 “Indexing service logs” 部分的配置中,取消註釋 “For S3” 部分有關的配置。

在完成上面的操作後,你的配置文件應該看起來和下面的內容相似:

druid.extensions.loadList=["druid-s3-extensions"]

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

druid.storage.type=s3
druid.storage.bucket=your-bucket
druid.storage.baseKey=druid/segments
druid.s3.accessKey=...
druid.s3.secretKey=...

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

druid.indexer.logs.type=s3
druid.indexer.logs.s3Bucket=your-bucket
druid.indexer.logs.s3Prefix=druid/indexing-logs

請參考 S3 extension 頁面中的內容來獲得更多的信息。

HDFS

在文件 conf/druid/cluster/_common/common.runtime.properties

  • 添加 “druid-hdfs-storage” 到 druid.extensions.loadList
  • 在 “Deep Storage” 和 “Indexing service logs” 部分的配置中,註釋掉本地存儲的配置。
  • 在 “Deep Storage” 和 “Indexing service logs” 部分的配置中,取消註釋 “For HDFS” 部分有關的配置。

在完成上面的操作後,你的配置文件應該看起來和下面的內容相似:

druid.extensions.loadList=["druid-hdfs-storage"]

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

druid.storage.type=hdfs
druid.storage.storageDirectory=/druid/segments

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

druid.indexer.logs.type=hdfs
druid.indexer.logs.directory=/druid/indexing-logs

同時,

  • 在你 Druid 啓動進程的的 classpath 中,請替換掉你的 Hadoop 配置 XMLs 文件(core-site.xml, hdfs-site.xml, yarn-site.xml,
    mapred-site.xml),或者你可以直接拷貝上面的文件到 conf/druid/cluster/_common/ 中。

請參考 HDFS extension 頁面中的內容來獲得更多的信息。

 

https://www.ossez.com/t/druid/13645

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