这是一个最佳实践问题。
我们的设置是一个hadoop集群,将数据存储(记录)在hdfs中。我们以csv格式获取数据,每天一个文件。只要不改变文件的“模式”,尤其是列数,就可以在hadoop中对这些文件运行MR作业。
但是,在可能会添加或删除列的意义上,我们面临着要分析的日志记录最终更改的问题。我想知道你们中的某些人是否愿意分享针对此类情况的最佳实践。目前我们可以想到的最好方法是将数据存储为json格式,而不是csv。但是,这将增加(至少增加一倍)所需的存储空间。我们还介绍了Apache Avro和Apache Parquet,并开始对此进行研究。
对此问题的任何想法和评论都将受到欢迎。
最佳答案
使用Thrift并使用象鸟(twitter lib)来使用相关的文件输入/输出格式。