我想获得有关数据格式的建议,特别是将数据存储在HDFS中的最佳解决方案。
我收到了很多JSON和XML格式的消息。为了有效处理,我需要以更好的格式为Hadoop转换这些文件,并将它们存储在HDFS中。 这些文件的模式不会随着时间而改变,并且这些文件可以是大的或小的(<64Mb)。我需要压缩这些文件。然后,我将通过Spark对数据进行处理,以确定是否存在错误,然后生成报告。
因此,经过一些研究,我认为我的用例的最佳格式是Avro(即使我不需要进行模式演进),因为它提供了压缩和可分割性。但是,我不确定这个解决方案。
感谢您的帮助:)
答案 0 :(得分:3)
取决于您的需求:
Avro是一个很好的文件格式来存储文件,因为它具有良好的压缩性,Avro可以插入pig,hive,spark ...此外,通过融合I / O的schemaregistry,您可以管理您的演变模式。
Parquet顶级压缩比很好,但它是一种柱状格式。它太可插入猪,蜂巢,火花,但Parquet对于过滤查询更有效。
在我看来,如果您只想存储并对数据进行全面扫描,我会继续使用avro,但如果您想使用impala或hive查询数据来进行商业智能,那么您将获得更好的Parquet结果。
我的2美分