【问题标题】:HDFS industrial Standard file format for storage?HDFS 工业标准存储文件格式?
【发布时间】:2016-02-24 06:23:41
【问题描述】:

在 HDFS 中存储数据以获得更好的性能和更好的集群利用率的文件格式的顶级工业实现方法是什么?

与普通文本文件相比,以 parquet 文件格式存储数据似乎提供了良好的性能数字。使用带有 snappy 压缩的 parquet 可以提高性能以及在空间方面更好地利用集群。

所以我的问题是,是只使用 parquet 文件格式还是使用 parquet 加 snappy 压缩来在 HDFS 上存储数据。什么是工业标准方法,为什么?非常感谢任何帮助。

【问题讨论】:

    标签: hadoop hdfs bigdata


    【解决方案1】:

    据我所知,采用 Snappy Compression 的 Parquet 格式非常高效,并在工业中广泛使用。您也可以使用 Avro,但这取决于您的用例。互联网上的比较统计:

    Uncompressed CSV              : 1.8 GB 
    Avro                          : 1.5 GB 
    Avro w/ Snappy Compression    : 750 MB 
    Parquet w/ Snappy Compression : 300 MB
    

    您可以查看this 文档了解更多详情。

    【讨论】:

    • 我的用例基本上是在这些数据之上运行 sparkSQL。创建数据框并通过 sparkSQL 访问。并且还使用配置单元查询。
    【解决方案2】:

    这当然取决于您的用例。

    您想在这些文件之上使用查询引擎(Hive、Impala)吗?选择像 ORC 或 Parquet 这样的柱状格式。列格式对于查询来说效率更高,因为您通常只将一部分数据投影到结果中。另外,它们的压缩效果非常好。

    您是否计划在数据的所有字段上主要使用 MapReduce/批处理操作?

    再次取决于您的用例:人类可读?使用 JSON 或 CSV。二进制?使用序列文件。

    【讨论】:

      【解决方案3】:

      请记住,分布遵循不同的方法

      Hortonworks 会告诉您应该使用 ORC。因为这是 Hortonworks 支持的格式。您可以将其与 snappy 一起使用。

      Cloudera 会告诉您使用 Parquet,因为它是他们的首选格式。

      MapR 会告诉你 HDFS 是文件存储而不是文件系统,使用 MapRFS 是 Hadoop 上唯一真正的文件系统,你应该这样做。

      听从经销商的建议绝对是一个不错的选择。您很可能不会仅根据文件存储参数选择分发。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-11
        • 2021-09-25
        • 2021-06-28
        相关资源
        最近更新 更多