Avro hadoop 随机访问文件

Posted

技术标签:

【中文标题】Avro hadoop 随机访问文件【英文标题】:Avro hadoop random access to files 【发布时间】:2013-07-05 00:59:16 【问题描述】:

我想知道 Avro 是否支持随机访问或查询。例如,如果我创建一个名为 B.avro 的 Avro 文件,其中包含 2 个二进制文件 X.png 和 Y.png,是否可以直接访问 Y.png?无需遍历整个文件,如果有一种方法可以直接使用文件密钥访问文件内容,那就太好了。

如果没有,是否有任何其他数据结构可以让我在 hadoop 环境 sequenceFiles, HAR 中执行此操作?我基本上使用 Avro 作为处理 hadoop 中大量小文件的一种方式,但我也想查询这些文件,这使得将它们存储在更大的集合中时变得很困难。

谢谢。

【问题讨论】:

【参考方案1】:

我不知道是否有任何 OOTB 功能允许我们通过其密钥访问值。但是public void seek(long position)支持随机访问AVro数据文件,DataFileReader提供。

您可能会发现 MapFile 很有用。 MapFile.Reader 类允许我们获取命名键的值。

如果这不是您所需要的,请不要介意。

【讨论】:

以上是关于Avro hadoop 随机访问文件的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop 部署之 HBase

Hbase细节概要

Hadoop 中的小文件与随机播放时间 - 调优

HBase基础知识浅入

Hbase记录-Hbase学习记录

HBase 文件读写过程描述