【发布时间】:2017-09-01 15:01:36
【问题描述】:
我希望能够在 HDFS 上存储数百万个小文件(二进制文件-图像、exe 等)(~1Mb),我的要求基本上是能够查询随机文件而不是运行 MapReduce 作业。 我的主要问题是 Namenode 内存问题,而不是 MapReduce 映射器问题。
所以我的选择是:
- HAR 文件 - 聚合小文件,然后将它们与 har:// 路径一起保存在另一个地方
- 序列文件 - 在它们进入时附加它们,这更适合 MapReduce 作业,所以我几乎消除了它
- HBase - 将小文件保存到 Hbase 是 google 上几篇文章中描述的另一种解决方案
我想我在问我是否错过了什么?我可以通过将二进制文件添加到大 Avro/ORC/Parquet 文件来实现我需要的吗?然后通过名称或通过 java/client 程序中的哈希查询它们?
谢谢,
【问题讨论】:
标签: hadoop hbase hdfs avro parquet