【问题标题】:Hadoop Input Formats - UsageHadoop 输入格式 - 用法
【发布时间】:2015-06-30 20:18:15
【问题描述】:

我知道 Hadoop 中的不同文件格式吗?默认情况下,hadoop 使用文本输入格式。使用文本输入格式的优点/缺点是什么。 avro 相对于文本输入格式的优势/劣势是什么。

另外请帮助我了解不同文件格式(Avro、Sequence、TextInput、RCFile)的用例。

【问题讨论】:

    标签: hadoop avro


    【解决方案1】:

    我相信 Text 作为默认设置没有任何优势,除了它的内容是人类可读和友好的。您可以通过发出 Hadoop fs -cat 轻松查看内容。

    Text 格式的缺点是

    • 占用磁盘资源较多,会影响生产作业效率。

    • 编写/解析文本记录需要更多时间

    • 如果文本由多列组成,则无法维护数据类型。

    Sequence、Avro、RCFile 格式比 Text 格式有非常显着的优势。

    序列 - 通过实现 Writable 接口,通过 Hadoop 的原生序列化过程直接以二进制格式存储键/值对象。列的数据类型维护得很好,解析相关数据类型的记录也很容易。由于二进制格式,显然它比文本占用更少的空间。

    Avro - 它是一种非常紧凑的 hadoop 键/值对二进制存储格式,通过 Avro 序列化/反序列化读取/写入记录。它与序列文件格式非常相似,但也提供语言互操作性和单元版本控制。

    只有当您需要单元版本控制或要存储的数据将被用 Java 以外的不同语言编写的少数其他应用程序使用时,您才可以选择 Avro 而不是序列。Avro 文件可以由任何语言(如 C、Ruby、Python、 PHP,Java,其中序列文件仅适用于 Java。

    RCFile - Record Columnar File 格式是面向列的,它是 Hive 特定的存储格式,旨在使 Hive 支持更快的数据加载,减少存储空间。

    除此之外,您还可以考虑 ORC 和 Parquet 文件格式。

    【讨论】:

    • 文本格式的另一个缺点是缺乏任何方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多