在HDFS中存储数据的文件格式的顶级工业实现方法有哪些,以提高性能并更好地利用群集?
与普通文本文件相比,似乎以镶木地板文件格式存储数据可提供良好的性能数字。使用具有snappy压缩功能的镶木地板可以提高性能,并在空间方面更好地利用群集。
所以我的问题是,是否只使用镶木地板文件格式,或者使用镶木地板和snappy压缩来存储HDFS上的数据。什么是工业标准方法,为什么?任何帮助都非常感谢。
答案 0 :(得分:2)
据我所知, Parna格式与Snappy Compression 非常有效并广泛应用于行业。您也可以使用Avro,但这取决于您的使用案例。互联网上的比较统计数据:
Uncompressed CSV : 1.8 GB
Avro : 1.5 GB
Avro w/ Snappy Compression : 750 MB
Parquet w/ Snappy Compression : 300 MB
您可以查看this文档了解详情。
答案 1 :(得分:1)
这当然取决于你的用例。
您想在这些文件之上使用查询引擎(Hive,Impala)吗?选择ORC或Parquet等柱状格式。列式格式对查询更有效,因为您通常只将一部分数据投影到结果中。另外,他们压缩得非常好。
您是否计划在数据的所有字段上使用大多数MapReduce /批处理操作?
再次取决于您的用例:人类可读?使用JSON或CSV。二进制?使用序列文件。
答案 2 :(得分:0)
请记住,分布遵循不同的方法
Hortonworks会告诉您应该使用ORC。因为这是Hortonworks支持的格式。你可以和snappy一起使用它。
Cloudera会告诉您使用Parquet,因为这是他们的首选格式。
MapR会告诉你HDFS是一个文件存储而不是文件系统,使用MapRFS是Hadoop上唯一真正的文件系统,你应该去做。
遵循经销商的建议绝对是一个不错的选择。您很可能不会仅根据文件存储参数选择分发。