我有一组输入文件正在进行更改。我们有什么办法可以运行一个缓存结果的Map reduce程序。此外,只要输入文件有任何更改,Map Reduce程序就会自动再次运行,并根据输入文件的更改来更改结果集?我们可以使用MR动态地解决这个问题吗?
答案 0 :(得分:0)
让我给你一个公平的想法,因为我不能在这里给出代码
你可以做一件事,使用水槽来改变文件,并使用mapreduce作为水槽。
因此,只要文件内容发生变化,水槽代理就会被触发,你的mapreduce作为水槽的下沉就会被执行。
通过这种方式,您可以实现目标欢呼声
答案 1 :(得分:0)
Map Reduce是批量处理的领域,并不是实时的,HDFS只附加文件系统,如果一个记录中的一个记录发生了变化,那么整个数据集或部分文件必须重新编写。如果无法在Mapper中缓存更改并且您需要使用Reduce侧连接,那么对近实时处理不利并且可能会导致计算密集。
对于您所描述的问题,最好使用Kafka,Storm和HBase或HBase的组合,具体取决于如何生成对文件的更改。