问题1:在程序的日志中看到,在reduce阶段出现了异常:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out ,程序里需要打开文件,系统默认为1024,也可以通过ulimit -a查看

编辑文件/etc/security/limits.conf 在文件后面添加:

# End of file
*       soft       nofile  102400
*       hard       nofile  409600

遇到这种错误网上也有不同的可能解决方法和解释,你们可以自己找找。

问题2: yarn日志页面出现异常:

Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file:
   /tmp/hsperfdata_hdp/6676
Try using the -Djava.io.tmpdir= option to select an alternate temp location

原因是根目录空间不足,解决问题的办法之一是清理根目录下不必要的文件,解决办法二就是,上面也就有提示了,不多说了。

/tmp/hsperfdata_username 目录的作用是什么呢?

jvm运行时在linux下默认在/tmp下生成上面的目录,目录下存放pid文件,和一些jvm进程信息,jmap、jstack等工具会读取该目录下的pid文件获取链接信息

问题3: 当任务不能跑满集群的时,为什么集群的节点会出现几个节点跑满容器,而其他节点则非常空闲?

原因是集群调度器默认处于批处理模式下,一个心跳会尽可能的分配任务,心跳先到达则会优先领取任务,我们可以通过参数yarn.scheduler.fair.max.assign参数设置为1,就可以大致的均衡任务到不同的节点

更新时间2015-07-18