我有一组正在进行更改的输入文件。有什么方法可以让我们运行一个map reduce程序来缓存结果吗。另外,每当输入文件发生任何更改时,map reduce程序会自动再次运行,并且结果集会根据输入文件的更改而更改?我们能用mr来动态地处理这个问题吗?
k5ifujac1#
让我给你一个公平的想法,可以这样做,因为我不能给代码在这里您可以做一件事,使用flume对文件进行更改,并使用mapreduce job作为flume接收器。因此,每当文件内容发生变化时,flume代理就会被触发,而作为flume接收器的mapreduce作业也会被执行。这样你就能实现你的目标干杯
wrrgggsh2#
map-reduce属于批处理范畴,不是实时的,hdfs也是只附加文件系统,如果十亿分之一的记录发生了变化,那么整个数据集或部分文件就必须重写。不适合近实时处理,如果更改不能缓存在Map器中,并且需要使用reduce-side连接,则计算量会非常大。对于您描述的问题,最好使用kafka、storm和hbase的组合,或者只使用hbase,具体取决于文件更改的生成方式。
2条答案
按热度按时间k5ifujac1#
让我给你一个公平的想法,可以这样做,因为我不能给代码在这里
您可以做一件事,使用flume对文件进行更改,并使用mapreduce job作为flume接收器。
因此,每当文件内容发生变化时,flume代理就会被触发,而作为flume接收器的mapreduce作业也会被执行。
这样你就能实现你的目标
干杯
wrrgggsh2#
map-reduce属于批处理范畴,不是实时的,hdfs也是只附加文件系统,如果十亿分之一的记录发生了变化,那么整个数据集或部分文件就必须重写。不适合近实时处理,如果更改不能缓存在Map器中,并且需要使用reduce-side连接,则计算量会非常大。
对于您描述的问题,最好使用kafka、storm和hbase的组合,或者只使用hbase,具体取决于文件更改的生成方式。