映射当更改影响输入数据集时,减少Caches结果和计算的程序

时间:2015-02-11 06:58:05

标签: hadoop dictionary reduce hadoop-streaming yarn

我有一组输入文件正在进行更改。我们有什么办法可以运行一个缓存结果的Map reduce程序。此外,只要输入文件有任何更改,Map Reduce程序就会自动再次运行,并根据输入文件的更改来更改结果集?我们可以使用MR动态地解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

让我给你一个公平的想法,因为我不能在这里给出代码

你可以做一件事,使用水槽来改变文件,并使用mapreduce作为水槽。

因此,只要文件内容发生变化,水槽代理就会被触发,你的mapreduce作为水槽的下沉就会被执行。

通过这种方式,您可以实现目标

欢呼声

答案 1 :(得分:0)

Map Reduce是批量处理的领域,并不是实时的,HDFS只附加文件系统,如果一个记录中的一个记录发生了变化,那么整个数据集或部分文件必须重新编写。如果无法在Mapper中缓存更改并且您需要使用Reduce侧连接,那么对近实时处理不利并且可能会导致计算密集。

对于您所描述的问题,最好使用Kafka,Storm和HBase或HBase的组合,具体取决于如何生成对文件的更改。