【问题标题】:HDFS small file designHDFS小文件设计
【发布时间】:2017-09-01 15:01:36
【问题描述】:

我希望能够在 HDFS 上存储数百万个小文件(二进制文件-图像、exe 等)(~1Mb),我的要求基本上是能够查询随机文件而不是运行 MapReduce 作业。 我的主要问题是 Namenode 内存问题,而不是 MapReduce 映射器问题。

所以我的选择是:

  1. HAR 文件 - 聚合小文件,然后将它们与 har:// 路径一起保存在另一个地方
  2. 序列文件 - 在它们进入时附加它们,这更适合 MapReduce 作业,所以我几乎消除了它
  3. HBase - 将小文件保存到 Hbase 是 google 上几篇文章中描述的另一种解决方案

我想我在问我是否错过了什么?我可以通过将二进制文件添加到大 Avro/ORC/Parquet 文件来实现我需要的吗?然后通过名称或通过 java/client 程序中的哈希查询它们?

谢谢,

【问题讨论】:

    标签: hadoop hbase hdfs avro parquet


    【解决方案1】:

    如果您将多个文件附加到大文件中,那么您需要维护每个小文件所在的大文件的索引。这基本上是 Hbase 将为您做的事情。它将数据组合成大文件,将它们存储在 HDFS 中,并使用键排序来支持快速随机访问。在我看来,Hbase 可以满足你的需求,如果你自己动手做一些东西,你最终可能会重做 Hbase 已经做过的很多工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多