mapreduce程序中的distributedcache的替代方案是什么?

dm7nw8vv  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(381)

当您需要将Map器/还原器经常使用的少量数据放入distributedcache时,distributedcache似乎很方便。但在某些情况下,要放入Map器的数据会非常大,比如超过300MB。在这种情况下你会怎么做?在这种情况下,分布式缓存的替代方案是什么?

0yycz8jy

0yycz8jy1#

分布式缓存在默认情况下是几GB,所以300mb不一定是个问题(您可以在中调整大小 mapred-site.xml )如果您的作业频繁运行,并且缓存中几乎没有其他更改,那么向节点获取300mb仍然是值得的。
另一种选择是将文件放在hdfs上,让任务从那里读取它们。你可以用 org.apache.hadoop.fs.FileSystem 我不想这么做。
要选择哪一个是最好的,您可能应该尝试两种方法,看看是什么让您获得更好的i/o和运行时数量(包括对其他作业的影响)。它可能取决于作业运行的频率、缓存中有多少其他内容、map/reduce比率等等。

相关问题