HDFS 作为深度存储:Druid 没有将历史数据存储在 hdfs 上

HDFS as Deep-Storage: Druid is not storing the historical data on hdfs

我已经在本地机器上设置了 Druid 的微型服务器。我想使用 HDFS 作为德鲁伊的深层存储。我使用了以下 Druid Docs, [druid-hdfs-storage] fully qualified deep storage path throws exceptions and imply-druid docs 作为参考。

我在 /apache-druid-0.16.0-incubating/conf/druid/single-server/micro-quickstart/_common/common 中进行了以下更改。runtime.properties

druid.extensions.loadList=["druid-hdfs-storage", "druid-kafka-indexing-service", "druid-datasketches"]

#
# Deep storage
#

# 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:8020/druid/segments


#
# Indexing service logs
#

# 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:8020/druid/indexing-logs

我也试过了druid.storage.storageDirectory=hdfs://mycluster:9000/druid/

但问题是数据源似乎工作正常并且日志中也没有 error/issue 但是 我看不到 hdfs 上的段.我已经等了几个小时(~大约 5 小时)才能持久保存数据。

此外,我已将 Hadoop 配置 XML(core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml)放在类路径中我的 Druid node.I 已将它们复制到 /apache-druid-0.16.0-incubating/conf/druid/single-server/micro-quickstart/_common/

Hadoop version is 2.7.3 and druid version is 0.16.0

你在 Druid UI 的 "Segments" 选项卡中看到任何片段了吗?如果是这样,您可以通过单击段行中的放大镜图标来检查该段在深层存储中的位置。

出现的 window 将在 "loadSpec" -> "path" 字段中向您显示分段的元数据和该分段的路径。

我通过手动更改 mapred-site.xml 中的 hdp.version 解决了这个问题。我在 middleManager.log

中遇到异常

java.lang.IllegalArgumentException: Unable to parse '/hdp/apps/${hdp.version}/mapreduce/mapreduce.tar.gz#mr-framework' as a URI, check the setting for mapreduce.application.framework.path

但是段元数据仍然显示 请求失败,状态代码为 404。