问题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,就可以大致的均衡任务到不同的节点
转http://hackershell.cn/?p=217