MapReduce程序,当更改影响输入数据集时自动缓存结果和计算

uoifb46i  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(329)

我有一组正在进行更改的输入文件。有什么方法可以让我们运行一个map reduce程序来缓存结果吗。另外,每当输入文件发生任何更改时,map reduce程序会自动再次运行,并且结果集会根据输入文件的更改而更改?我们能用mr来动态地处理这个问题吗?

k5ifujac

k5ifujac1#

让我给你一个公平的想法,可以这样做,因为我不能给代码在这里
您可以做一件事,使用flume对文件进行更改,并使用mapreduce job作为flume接收器。
因此,每当文件内容发生变化时,flume代理就会被触发,而作为flume接收器的mapreduce作业也会被执行。
这样你就能实现你的目标
干杯

wrrgggsh

wrrgggsh2#

map-reduce属于批处理范畴,不是实时的,hdfs也是只附加文件系统,如果十亿分之一的记录发生了变化,那么整个数据集或部分文件就必须重写。不适合近实时处理,如果更改不能缓存在Map器中,并且需要使用reduce-side连接,则计算量会非常大。
对于您描述的问题,最好使用kafka、storm和hbase的组合,或者只使用hbase,具体取决于文件更改的生成方式。

相关问题