hadoop 0.20.2 cdh3u6 运行单节点任务卡死,但不报错,问题分析。
2016-02-19 14:49
260 查看
背景:
单节点运行hadoop所有组件(namenode,datanode,jobtracker,tasktarcker等)运行任务后,所有任务卡死,无法继续运行。使用oozie管理job。
分析:
查看hadoop日志并没有发现错误,因此,怀疑配置文件出现问题。逐步检查配置文件出现问题的地方。首先,检查服务器负载境况,发现服务器cpu使用率低于20%,内存占用不足50%,硬盘io tps 小于3。机器负载不重。可以分析出,hadoop中的任务卡死,不是由于硬件资源不足导致的。换句话说,就是hadoop的其他设置导致的。从而检查hadoop的配置文件中配置是否合理。检查hadoop的conf/hadoop-env.sh。发现
HADOOP_HEAPSIZE的值为8192;
表明hadoop各个组件启动时,分配的内存足够大。不存在内存分配不足的问题。接着查看其他值发现没什么特殊的地方。使用jps查看chind数量,发现有4个,检查配置文件中的conf/mapred-site.xml,其中mapred.tasktracker.map.tasks.maximum的值恰好是4,表明tasktracker的chind中map的数量最多是4个,然后确认了下job开始的位置,发现就是在执行map的时候开始,说明同时执行4个map时,发生竞争,导致任务不能进行下去,修改其值为合适大小(网上说可以修改为任务数/cpu核心数=1~2之间),重新模拟,克服死锁,问题成功解决。
单节点运行hadoop所有组件(namenode,datanode,jobtracker,tasktarcker等)运行任务后,所有任务卡死,无法继续运行。使用oozie管理job。
分析:
查看hadoop日志并没有发现错误,因此,怀疑配置文件出现问题。逐步检查配置文件出现问题的地方。首先,检查服务器负载境况,发现服务器cpu使用率低于20%,内存占用不足50%,硬盘io tps 小于3。机器负载不重。可以分析出,hadoop中的任务卡死,不是由于硬件资源不足导致的。换句话说,就是hadoop的其他设置导致的。从而检查hadoop的配置文件中配置是否合理。检查hadoop的conf/hadoop-env.sh。发现
HADOOP_HEAPSIZE的值为8192;
表明hadoop各个组件启动时,分配的内存足够大。不存在内存分配不足的问题。接着查看其他值发现没什么特殊的地方。使用jps查看chind数量,发现有4个,检查配置文件中的conf/mapred-site.xml,其中mapred.tasktracker.map.tasks.maximum的值恰好是4,表明tasktracker的chind中map的数量最多是4个,然后确认了下job开始的位置,发现就是在执行map的时候开始,说明同时执行4个map时,发生竞争,导致任务不能进行下去,修改其值为合适大小(网上说可以修改为任务数/cpu核心数=1~2之间),重新模拟,克服死锁,问题成功解决。
相关文章推荐
- 详解HDFS Short Circuit Local Reads
- Hadoop_2.1.0 MapReduce序列图
- 使用Hadoop搭建现代电信企业架构
- 单机版搭建Hadoop环境图文教程详解
- hadoop常见错误以及处理方法详解
- hadoop 单机安装配置教程
- hadoop的hdfs文件操作实现上传文件到hdfs
- hadoop实现grep示例分享
- Apache Hadoop版本详解
- linux下搭建hadoop环境步骤分享
- hadoop client与datanode的通信协议分析
- hadoop中一些常用的命令介绍
- Hadoop单机版和全分布式(集群)安装
- 用PHP和Shell写Hadoop的MapReduce程序
- hadoop map-reduce中的文件并发操作
- Hadoop1.2中配置伪分布式的实例
- java结合HADOOP集群文件上传下载
- 让python在hadoop上跑起来
- 用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
- Hadoop安装感悟