hadoop—从分布式缓存或hdfs输出读取

0kjbasz6  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(384)

我正在实现一个迭代算法,它在每次迭代中产生一些结果,这个结果在下一次迭代的Map阶段使用。
我应该使用分布式缓存将结果提供给mapper,还是从hdfs读取?什么更有效?
那个文件不应该那么大。这个想法只是在设置阶段读取它,并将其保存在mapper的内存中。
谢谢

nbewdwxp

nbewdwxp1#

如果文件不是那么大,并且将在mapper的设置中读取,那么distributedcache是前进的方向。当然,如果你在第二份工作中没有阅读任何其他内容,那么你就不必问为什么要使用mapreduce工作了。
从hdfs读取(即通过inputformat将文件流式传输到Map器)和使用distributedcache有两种完全不同的用例。distributedcache是为可以放入内存的小文件而设计的,而使用inputformat读入Map器是为只能使用分布式进程处理的大型分布式数据集而设计的。
如果您的数据集足够小,可以在distributedcache中使用,那么您可以使用java作业来处理它,并避免mapreduce的大量开销。

相关问题