为了获得更好的性能和更好的集群利用率,在HDFS中存储数据的最常见的文件格式行业实现方法是什么?
与普通文本文件相比,以拼图文件格式存储数据似乎可以提供更好的性能数据。使用快速压缩的拼图不仅可以提高性能,还可以在空间方面更好地利用集群。
所以我的问题是,是只使用拼接文件格式,还是使用拼接+快速压缩在HDFS上存储数据。什么是工业标准方法?为什么?任何帮助都是非常感谢的。
发布于 2016-02-24 15:55:00
据我所知,带有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文档以了解更多详细信息。
发布于 2016-02-25 00:17:06
这当然取决于你的用例。
是否要在这些文件之上使用查询引擎(Hive、Impala)?选择柱状格式,如ORC或Parquet。列格式对于查询来说要高效得多,因为您通常只将部分数据投影到结果中。另外,它们的压缩效果也很好。
您是否计划在数据的所有字段上主要使用MapReduce/batch操作?
再次取决于你的用例:人类可读?使用JSON或CSV。二进制?使用序列文件。
发布于 2016-02-24 16:38:49
请记住,发行版遵循不同的方法。
Hortonworks会告诉你应该使用ORC。因为这是Hortonworks支持的格式。您可以将其与snappy一起使用。
Cloudera会告诉你使用拼图,因为这是他们的首选格式。
Hadoop会告诉你HDFS是一个文件存储,而不是一个文件系统,使用MapRFS是Hadoop上唯一真正的文件系统,你应该这么做。
听从经销商的建议绝对是个不错的选择。最有可能的情况是,您不会仅根据文件存储参数来选择分发版本。
https://stackoverflow.com/questions/35594744
复制相似问题