Hadoop 输入格式 - 使用

Hadoop Input Formats - Usage

我知道 Hadoop 中的不同文件格式吗?默认情况下,hadoop 使用文本输入格式。什么是 advantage/disadvantage 使用文本输入格式。 什么是 advantage/disadvantage of avro over text input format.

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

我认为除了内容易于阅读和友好之外,默认文本没有任何优势。您可以通过发出 Hadoop fs -cat .

轻松查看内容

文本格式的缺点是

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

  • Writing/Parsing文字记录需要更多时间

  • 如果文本由多列组成,则没有维护数据类型的选项。

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

Sequence - key/value 对象通过实现 Writable 接口,通过 Hadoop 的本机序列化过程直接以二进制格式存储。列的数据类型维护得很好,解析具有相关数据类型的记录也很容易。显然,由于二进制格式,与文本相比,它需要更少的 space。

Avro - 它是一种非常紧凑的二进制存储格式,用于 hadoop key/value 对,Reads/writes 通过 Avro serialization/deserialization 记录。它与序列文件格式非常相似,但还提供语言互操作性和单元格版本控制。

只有当您需要单元格版本控制时,您才可以选择 Avro 而不是 Sequence,否则要存储的数据将被少数其他用不同语言编写的应用程序使用 Java.Avro 文件可以由 C 等任何语言处理, Ruby, Python, PHP, Java 其中序列文件仅针对 Java.

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

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