繁体   English   中英

从分布式缓存或HDFS输出读取

[英]To read from distributed cache or from HDFS output

我正在实现一种迭代算法,该算法在每次迭代中都会产生一些结果,并且该结果将在下一次迭代的映射阶段中使用。

我应该使用分布式缓存将结果提供给Mapper还是应该从HDFS中读取? 有什么更有效的?

该文件不应太大。 这个想法只是在设置阶段读取它,并将其保存在mapper的内存中。

谢谢

如果文件不是很大,并且将在映射器的设置中读取,则DistributedCache是​​前进的方向。 当然,如果您没有将其他内容读入第二份工作,那么就会引出一个问题,即您为什么要使用MapReduce工作。

从HDFS读取(即,通过InputFormat将文件流式传输到映射器)并使用DistributedCache有两个完全不同的用例。 DistributedCache设计用于可容纳内存的小文件,而使用InputFormat读取映射器则设计用于只能通过分布式过程处理的大型分布式数据集。

如果您的数据集足够小,可以在DistributedCache中使用,则可以使用Java作业来处理它,并避免MapReduce的大量开销。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM