提问者:小点点

Hadoop输入格式-用法


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

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


共1个答案

匿名用户

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

文本格式的缺点是

>

  • 它需要更多的磁盘资源,因此会影响生产作业效率。

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

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

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

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

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

    只有当您需要单元格版本控制或者要存储的数据将被Java以外的其他几种不同语言编写的应用程序使用时,您才可以选择Avro而不是Sequence。Avro文件可以被任何语言处理,如C、Ruby、Python、PHP,Java其中Sequence文件仅针对Java。

    RCFile-记录列文件格式是面向列的,它是一种Hive特定的存储格式,旨在使hive支持更快的数据加载,减少存储空间。

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