Hadoop输入格式-用法

Hadoop输入格式-用法,hadoop,avro,Hadoop,Avro,我知道Hadoop中的不同文件格式吗?默认情况下,hadoop使用文本输入格式。使用文本输入格式的优点/缺点是什么。 与文本输入格式相比,avro的优点/缺点是什么 另外,请帮助我了解不同文件格式(Avro、Sequence、TextInput、RCFile)的用例。我认为文本作为默认文本没有任何好处,只是其内容是人类可读和友好的。您可以通过发布Hadoop fs-cat来轻松查看内容 文本格式的缺点是 这会占用更多的磁盘资源,因此会影响生产作业的效率 写入/解析文本记录需要更多的时间 在文本

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


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

我认为文本作为默认文本没有任何好处,只是其内容是人类可读和友好的。您可以通过发布Hadoop fs-cat来轻松查看内容

文本格式的缺点是

  • 这会占用更多的磁盘资源,因此会影响生产作业的效率

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

  • 在文本由多列组成的情况下,没有维护数据类型的选项

序列、Avro、RCFile格式与文本格式相比具有非常显著的优势

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

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

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

RCFile-记录列文件格式面向列,是一种特定于配置单元的存储格式,旨在使配置单元支持更快的数据加载,减少存储空间


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

文本格式的另一个缺点是缺少任何方案。