现在的位置: 首页 > 综合 > 正文

解决MapReduce过程中IO wait高的几个思路

2013年08月10日 ⁄ 综合 ⁄ 共 354字 ⁄ 字号 评论关闭

最近在MapReduce的逻辑运算测试的时,发现单个节点的CPU的IO wait值比较高,CPU大量的消耗在等待IO操作上。

单个节点的运算的数据量比较大,每秒的IO吞吐量将近200M,iotop监控了一下主要是消耗在tasktacker从datanode节点读取数据上。

从以下几个角度上对这个问题进行优化。

1、源数据压缩存储

2、dfs.data.dir分多个目录存储

3、io.file.buffer.size的调整,增加每次读取的数据量

4、减少tasktracker并发任务的进程数量

5、map.local.dir分多个目录,减少map运算中间结果的IO影响;中间数据压缩存储。

6、文件系统的优化,预读缓存大小调整,文件挂载设置noatime、nodiratime;调整IO调度算法,适应大量顺序读的场景;

 

 

抱歉!评论已关闭.