hadoop 0.20 jobtracker leasechecker 线程溢出问题分析与解决
2016-09-08 00:00
525 查看
摘要: jobtracker 线程溢出,导致其一定周期内崩溃 hadoop 0.20
集群hadoop 0.20 使用oozie进行任务调度,运行一段时间,jobtracker发生崩溃。
分析其原因发现jobtracker在执行oozie提交的任务时,leasechecker线程不断增加,导致jobtracker崩溃。而使用hadoop 自带的命令行提交任务,线程不会增加。因此通过多方手段确定,oozie在向hadoop提交任务时,会提交配置文件到hdfs,而jobtracker的后续某些操作会直接使用提交上来的配置文件,在提交上来的配置文件中有fs禁止使用缓存一项,这就会导致jobtracker获取fs时,不停的创建相关实例而不释放。故此解决方法较为简单,oozie提交的配置文件中,不要禁止使用缓存即可。
相关代码:
src/mapred/org/apache/hadoop/mapred/JobInProgress.java 等initTasks方法调用JobHistory方法。传递的参数就包括jobCient传递过来的。
src/mapred/org/apache/hadoop/mapred/JobHistory.java 中的logSubmitted的fs = userLogFile.getFileSystem(jobConf)
集群hadoop 0.20 使用oozie进行任务调度,运行一段时间,jobtracker发生崩溃。
分析其原因发现jobtracker在执行oozie提交的任务时,leasechecker线程不断增加,导致jobtracker崩溃。而使用hadoop 自带的命令行提交任务,线程不会增加。因此通过多方手段确定,oozie在向hadoop提交任务时,会提交配置文件到hdfs,而jobtracker的后续某些操作会直接使用提交上来的配置文件,在提交上来的配置文件中有fs禁止使用缓存一项,这就会导致jobtracker获取fs时,不停的创建相关实例而不释放。故此解决方法较为简单,oozie提交的配置文件中,不要禁止使用缓存即可。
相关代码:
src/mapred/org/apache/hadoop/mapred/JobInProgress.java 等initTasks方法调用JobHistory方法。传递的参数就包括jobCient传递过来的。
src/mapred/org/apache/hadoop/mapred/JobHistory.java 中的logSubmitted的fs = userLogFile.getFileSystem(jobConf)
相关文章推荐
- Hadoop源码分析26 JobTracker主要容器和线程
- Hadoop启动后Jobtracker一直是initializing状态的问题解决
- hadoop jobtracker结构分析(0.20)
- home/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1问题解决
- java 多线程学习之多生产者多消费者产生的线程安全问题分析与解决:Lock和Condition
- hadoop启动jobtracker时错误java.io.IOException: Incompatible namespaceIDs的解决方法
- Hadoop源码分析28 JobTracker 处理JobClient请求
- 【hadoop】DataNode,NameNode,JobTracker,TaskTracker用jps查看无法启动解决办法
- Hadoop源码分析38 JobClient的线程协作
- hadoop之JobTracker功能分析
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~ 线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析
- 【hadoop】DataNode,NameNode,JobTracker,TaskTracker用jps查看无法启动解决办法
- Hadoop源码分析24 JobTracker启动和心跳处理流程
- Hadoop源码分析27 JobTracker空载处理心跳
- hadoop运行原理之Job运行(四) JobTracker端心跳机制分析
- 溢出文本text-overflow的使用问题分析及解决
- Hive中跑MapReduce Job出现OOM问题分析及解决
- JobTracker之辅助线程和对象映射模型分析(源码分析第五篇)
- hadoop job运行问题解决
- 多线程委托之跨线程问题分析--在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke(解决方法已更新)