前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Druid 集群方式部署 —— 元数据和深度存储

Druid 集群方式部署 —— 元数据和深度存储

原创
作者头像
HoneyMoose
修改2021-08-06 11:12:30
5450
修改2021-08-06 11:12:30
举报
文章被收录于专栏:CWIKIUSCWIKIUS

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

1_7c2k29kJoDsmc91D0GV34g
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” 部分有关的配置。

在完成上面的操作后,你的配置文件应该看起来和下面的内容相似:

代码语言:javascript
复制
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” 部分有关的配置。

在完成上面的操作后,你的配置文件应该看起来和下面的内容相似:

代码语言:javascript
复制
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 页面中的内容来获得更多的信息。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置 metadata 存储和深度存储(deep storage)
    • 从独立服务器部署上合并到集群
      • 元数据存储
        • 深度存储
          • S3
          • HDFS
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档