MapReduce任务运行到running job卡住

 (1)环境:ubuntuJDK1.8Hadoop-2.7.2

(2) 问题:每次hadoop跑各种MR应用,运行到running job都卡住了。

配置好伪分布式的hadoop集群,启动集群后,使用自带的pi实例测试集群是否配置成功,使用命令:

$hadoop jar myapp.jar data/ncdc/wc data/result

可是任务运行到running job就卡住了

INFO mapreduce.Job: Running job: job_1403905542893_0004

ResourcesManager浏览器界面显示UNASSIGNED

Tracking UI - UNASSIGNED
Apps Submitted - 1
Apps Pending - 1
Apps Running - 0

Jps输出:

4764 Jps
2148 DataNode
3280 ResourceManager
2053 NameNode
3378 NodeManager
2318 SecondaryNameNode

(3) 解决方法:

从网上查了好多资料,主要有两种方法:一是hosts配置了不相关的主机,修改/etc/hosts文件,删除不相关的主机;二是集群的资源不足,无法分配给新任务的资源,需要调节yarn-site.xml的调度器获得资源的参数。

对于方法一,我的配置文件只配置了本地主机,因此不是hosts文件问题。对于方法二,以前使用Apachehadoop伪分布式集群时,运行到map 0% reduce 0%卡住,调节下yarn-site.xml参数,可以完美运行了,原yarn-site.xml配置:

<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>2</value>
</property>

调节后的配置:

<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>3072</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>2</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>256</value>
</property>

Yarn配置详细参数可见:http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-configurations-resourcemanager-nodemanager/

可是这些配置同样在CDHhadoop上却出现在running job卡住的问题。

(4) 最终解决方案:

yarn-site.xml中关于资源调节的配置删除即可。

yarn-site.xml配置:

<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2560</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>2</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>256</value>
</property>
</configuration>

修改后yarn-site.xml文件:

<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>

重启resourcemanagernodemanager守护进程,再次运行pi实例,会发现作业成功运行!

参考资料:http://stackoverflow.com/questions/24481439/cant-run-a-mapreduce-job-on-hadoop-2-4-0

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值