Task 在运行的过程中中间结果是需要写本地文件 系 统 的,hadoop中就有配置选项 mapred.local.dir(1.X)/yarn.nodemanager.local-dirs (2.X)来配置这个本地文件的写入点,可以有多个写入点,通常如果每个slave上有多个磁 盘 ,分别挂载在 /disk{1..3} 的话,就可以将之配置为:
<property>
<name>mapred.local.dir</name>
<value>/disk1/mapred/local,/disk2/mapred/local,/disk3/mapred/local</value>
</property>
这 样多个 task在同一个TT/AM上运行的时候,就可以分别写不同的磁盘写入点,以增大作业运行的磁盘吞吐率。
这样配置有报Disk空间不足的隐患,消除办法是
- mapred.local.dir.minspacestart : 这个选项用来告诉tasktracker,当某个mapred local 写入点的磁盘剩余空间小于这个配置的值的时候,该 TT就不再接受新的task。(这是1.X中的配置。2.x中没找到)