MapReduce程序中DistributedCache的替代方法是什么?

时间:2014-02-18 16:12:29

标签: hadoop mapreduce

当您需要将mapper / reducer经常使用的少量数据放入distributedCache时,似乎DistributedCache会派上用场。但在某些情况下,您希望放入映射器的数据会非常大,比如超过300 MB。在这种情况下你会怎么做?在这种情况下,distributedCache的替代方案是什么?

1 个答案:

答案 0 :(得分:1)

  1. 默认情况下,分布式缓存为几千兆字节,因此300MB不一定是个问题。 (您可以在mapred-site.xml中调整大小。)如果您的作业频繁运行且缓存中几乎没有其他流失,那么获取300MB节点仍然是值得的。

  2. 另一种选择是将您的文件放在HDFS上并让任务从那里读取。您可以使用org.apache.hadoop.fs.FileSystem API来执行此操作。

  3. 要选择哪一个最好,你应该尝试两种方式,看看是什么给你提供了更好的I / O和运行时数(包括对其他工作的影响)。它可能取决于您的作业运行频率,缓存中有多少其他内容,映射/缩小比例等。