当您需要将Map器/还原器经常使用的少量数据放入distributedcache时,distributedcache似乎很方便。但在某些情况下,要放入Map器的数据会非常大,比如超过300MB。在这种情况下你会怎么做?在这种情况下,分布式缓存的替代方案是什么?
0yycz8jy1#
分布式缓存在默认情况下是几GB,所以300mb不一定是个问题(您可以在中调整大小 mapred-site.xml )如果您的作业频繁运行,并且缓存中几乎没有其他更改,那么向节点获取300mb仍然是值得的。另一种选择是将文件放在hdfs上,让任务从那里读取它们。你可以用 org.apache.hadoop.fs.FileSystem 我不想这么做。要选择哪一个是最好的,您可能应该尝试两种方法,看看是什么让您获得更好的i/o和运行时数量(包括对其他作业的影响)。它可能取决于作业运行的频率、缓存中有多少其他内容、map/reduce比率等等。
mapred-site.xml
org.apache.hadoop.fs.FileSystem
1条答案
按热度按时间0yycz8jy1#
分布式缓存在默认情况下是几GB,所以300mb不一定是个问题(您可以在中调整大小
mapred-site.xml
)如果您的作业频繁运行,并且缓存中几乎没有其他更改,那么向节点获取300mb仍然是值得的。另一种选择是将文件放在hdfs上,让任务从那里读取它们。你可以用
org.apache.hadoop.fs.FileSystem
我不想这么做。要选择哪一个是最好的,您可能应该尝试两种方法,看看是什么让您获得更好的i/o和运行时数量(包括对其他作业的影响)。它可能取决于作业运行的频率、缓存中有多少其他内容、map/reduce比率等等。