为什么mapReduce作业建议使用scan.setCacheBlocks(false)?

时间:2014-03-26 20:15:00

标签: java hadoop mapreduce hbase

我理解为什么scan.setCaching适用于mapreduce作业,但我不明白为什么setCacheBlocks(false)不好。是否会使服务器负担过重?

1 个答案:

答案 0 :(得分:3)

简而言之 - ,如果你在mapreduce作业中将blockcaching设置为true,它会给RegionServer带来负担。
当你主要在输入扫描上使用mapreduce作业时,它最近很有可能扫描输入将在下一个映射阶段被丢弃。 Blockcache是​​LRU ..它在第一次请求期间将数据放入Blockcache,然后在第二次请求中发现它没有用,并交换它并继续进程。因此,RegionServer不断地将数据交换进出BlockCache,无法获得收益。它只是大量不必要的IO使用。
但是在正常阅读的情况下,建议保持从数据本地获取是正确的。