一、抛出问题
在运行jar包时,或者是测试Hadoop的wordcount程序时,不知道你是否会遇到,运行卡顿,总是出不来结果的问题,就是运行出来了,也是等了大半天,这样等下去会不会有点浪费钱,浪费时间的感觉。。。
我曾经也遇到这样的问题,卡了我三天的进程,翻过无数大佬们的博客,最终找出了问题的原因:在每个虚拟机分配的内存和CPU资源太少,不能满足Hadoop运行所需的默认资源需求。
二、我的问题
卡在这里很长时间,我也去查看了他的日志文件,发现也没有报错。
三、查找问题
Hadoop集群运行jar包时一直卡在INFO mapreduce.Job: Running job这个位置,我上网查了一下,找到了一些解决方案:
首先是在我在yarn-site.xml中加
<property> <name>yarn.nodemanager.resource.memory-mb</name> <value>20480</value> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>2048</value> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>2.1</value> </property>
发现并没有什么卵用,还是卡在相同的位置
我只能继续寻找解决问题的方案,就在我寻找方案的第三天的时候,无意间进入了别人的博客,最终找到了适合的方法。
四、解决问题
我开始修改更改mapred-site.xml文件将:
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
换成了:
<property> <name>mapreduce.job.tracker</name> <value>hdfs://此处为自己的电脑IP:8001</value> <final>true</final> </property>
重新启动一下自己的Hadoop,重新运行一下jar包,发现成功了,自己三天的努力没有白费!
五、测试结果
运行正常,可以得出结果,运行速度快到飞起。