这是一个最佳实践问题。
我们的设置是一个hadoop集群,在hdfs中存储(log)数据。我们以csv格式获取数据,每天一个文件。在hadoop中对这些文件运行mr jobs是可以的,只要文件的“模式”,特别是列的数量没有改变。
但是,我们面临的问题是,我们要分析的日志记录最终会发生变化,即可能会添加或删除列。我想知道你们中的一些人是否愿意分享你们在这种情况下的最佳实践。目前我们能想到的最好的方法不是以csv格式存储数据,而是以json格式存储数据。但是,这将增加(至少两倍)所需的存储空间。我们还带来了apache avro和apache parquet,刚刚开始研究这个。
任何关于这个问题的想法和评论都是非常受欢迎的。
1条答案
按热度按时间zbq4xfa01#
使用thrift和elephant bird(twitter lib)来使用相关的文件输入/输出格式。