Avro,镶木地板和SequenceFileFormat在Hadoop生态系统中的地位及其实用性

时间:2016-01-07 14:19:43

标签: hadoop hive avro impala parquet

我看到在导入和存储到HDFS时使用了不同的文件格式,并且数据处理引擎在执行他们自己的一套程序时也使用这些格式。这些文件格式有何不同之处以及他们如何选择不同的文件格式用例。作为一个新手,它会造成混乱。坚持帮助。

1 个答案:

答案 0 :(得分:4)

选择取决于您所面临的用例,具体取决于您拥有的数据类型,与处理工具的兼容性,架构演变,文件大小,查询类型和读取性能。

一般来说:

  • Avro更适合可随时间变化的事件数据
  • 序列适用于MR作业之间分片的数据集
  • 由于它的柱状格式,Parquet更适合分析

以下是一些可以帮助您的钥匙

写作表现(+越快越好)

  • 序列:+++
  • Avro:++
  • 实木复合地板:+

阅读表现(+越快越好)

  • 顺序:+
  • Avro:+ + +
  • 实木复合地板:+ + + + +

文件大小(越多+文件越小)

  • 顺序:+
  • Avro:++
  • 实木复合地板:+ + +

以下是关于每种文件类型的一些事实

Avro:

  • 更好地进行架构演变
  • 是面向行的二进制格式
  • 有架构
  • 除了数据外,该文件还包含架构。
  • 支持架构演变
  • 可以压缩
  • 紧凑且快速的二进制格式

实木复合地板:

  • 写作速度慢但阅读速度快
  • 是面向列的二进制格式
  • 支持压缩
  • 在需要查询特定列时,在磁盘I / O方面进行优化和高效

SequenceFile:

  • 是面向行的格式
  • 即使数据已压缩也支持拆分
  • 可用于打包hadoop中的小文件

我希望我的回答能帮到你