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

Utk*_*raf 1 hadoop hive avro impala parquet

我已经看到在导入和存储到HDFS中时使用了不同的文件格式,并且数据处理引擎在执行自己的过程集时也使用了这些格式,因此这些文件格式有何不同,以及如何针对不同的用例进行选择。作为新手会引起混乱,请帮忙。

Meh*_*AZI 5

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

一般来说 :

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

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

写作表现(越多越快)

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

阅读性能(越多越快)

  • 顺序:+
  • 阿夫罗(Avro):+ + +
  • 实木复合地板:+ + + + +

文件大小(文件越大,文件越小)

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

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

阿夫罗(Avro):

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

实木复合地板

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

SequenceFile:

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

希望我的回答对您有帮助