您的位置:首页 > 大数据 > 人工智能

storm on yarn安装时 提交到yarn失败 failed

2015-07-15 10:11 489 查看
最近在部署stormonyarn,部署参考文章

http://www.tuicool.com/articles/BFr2Yv
http://blog.csdn.net/jiushuai/article/details/18729367


在安装完zookeeper,配置好storm和stormonyarn后,启动zookeeper,其中zookeeper的port为2181,
然后通过mvnpackage编译工程,发现会出现错误,然后使用mvnpacket-DskipTests重新编译,跳过test
然后向yarn提交storm任务,storm-yarnlaunch<pathtoyourstorm.yamlfile>

提交后查看localhost:8088,发现任务failed,查看错误信息发现错误如下
[/code]

Applicationapplication_1411179375629_0005failed2timesduetoAMContainerforappattempt_1411179375629_0005_000002exitedwithexitCode:1dueto:Exceptionfromcontainer-launch:org.apache.hadoop.util.Shell$ExitCodeException:
org.apache.hadoop.util.Shell$ExitCodeException:
atorg.apache.hadoop.util.Shell.runCommand(Shell.java:505)
atorg.apache.hadoop.util.Shell.run(Shell.java:418)
atorg.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
atorg.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:195)
atorg.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:283)
atorg.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:79)
atjava.util.concurrent.FutureTask.run(FutureTask.java:262)
atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
atjava.lang.Thread.run(Thread.java:745)
Containerexitedwithanon-zeroexitcode1
.Failingthisattempt..Failingtheapplication.


查看log信息发现具体错误如下

14/09/1920:44:55INFOyarn.MasterServer:StartingMasterThriftServer
14/09/1920:44:55ERRORauth.ThriftServer:ThriftServerisbeingstoppeddueto:org.apache.thrift7.transport.TTransportException:CouldnotcreateServerSocketonaddress0.0.0.0/0.0.0.0:9000.
org.apache.thrift7.transport.TTransportException:CouldnotcreateServerSocketonaddress0.0.0.0/0.0.0.0:9000.
atorg.apache.thrift7.transport.TNonblockingServerSocket.<init>(TNonblockingServerSocket.java:89)
atorg.apache.thrift7.transport.TNonblockingServerSocket.<init>(TNonblockingServerSocket.java:68)
atorg.apache.thrift7.transport.TNonblockingServerSocket.<init>(TNonblockingServerSocket.java:61)
atbacktype.storm.security.auth.SimpleTransportPlugin.getServer(SimpleTransportPlugin.java:47)
atbacktype.storm.security.auth.ThriftServer.serve(ThriftServer.java:52)
atcom.yahoo.storm.yarn.MasterServer.main(MasterServer.java:175)


在启动MasterThriftServer时发生错误,错误为端口错误,因为9000端口已经被hdfs占用监听,因此不能创建ServerSocket

致谢google,搜到的解决办法为修改端口号,帖子如下
https://groups.google.com/forum/#!topic/storm-yarn/A1ds1M6qmN8
修改storm-yarn-master/src/main/resources/master_defaults.yaml,将其中的master.thrift.port修改为一个其他的合适的值,我修改为9001

然后再编译工程,重新提交,这时发现任务没有failed,但是访问localhost:7070,不能访问,查看log后发现错误为nimbus没有启动成功,错误如下:

15/07/1503:36:06ERRORyarn.MasterServer:UnhandlederrorinAM:
org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException:Invalidresourcerequest,requestedvirtualcores<0,orrequestedvirtualcores>maxconfigured,requestedVirtualCores=130,maxVirtualCores=8
atorg.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.validateResourceRequest(SchedulerUtils.java:213)
atorg.apache.hadoop.yarn.server.resourcemanager.RMServerUtils.validateResourceRequests(RMServerUtils.java:97)
atorg.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService.allocate(ApplicationMasterService.java:502)
..................
atcom.yahoo.storm.yarn.MasterServer$1.run(MasterServer.java:69)
Causedby:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException):Invalidresourcerequest,requestedvirtualcores<0,orrequestedvirtualcores>maxconfigured,requestedVirtualCores=130,maxVirtualCores=8
atorg.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.validateResourceRequest(SchedulerUtils.java:213)
atorg.apache.hadoop.yarn.server.resourcemanager.RMServerUtils.validateResourceRequests(RMServerUtils.java:97)

..................

atcom.sun.proxy.$Proxy7.allocate(UnknownSource)atorg.apache.hadoop.yarn.api.impl.pb.client.ApplicationMasterProtocolPBClientImpl.allocate(ApplicationMasterProtocolPBClientImpl.java:77)...9more15/07/1503:36:06INFOyarn.StormMasterServerHandler:stoppingsupervisors...15/07/1503:36:06INFOyarn.StormMasterServerHandler:stoppingUI...15/07/1503:36:06INFOyarn.StormMasterServerHandler:stoppingnimbus...


意思是申请的virtualcores超过最大限制maxVirtualCores,google后找到帖子

hadoop-Whycannotmorethan32coresberequestedfromYARNtorunajob?-StackOverflowhttp://stackoverflow.com/questions/29780401/why-cannot-more-than-32-cores-be-requested-from-yarn-to-run-a-job
因此修改yarn-site.xml如下

<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>8</value>
</property>


重新启动yarn,然后提交,成功!!!

如果发现以下错误

2015-07-1503:19:28o.a.z.ClientCnxn[INFO]OpeningsocketconnectiontoserverMMC/192.168.1.200:2181
2015-07-1503:19:28o.a.z.ClientCnxn[WARN]Session0x0forservernull,unexpectederror,closingsocketconnectionandattemptingreconnect
java.net.ConnectException:拒绝连接


有可能是zookeeper没有启动,启动即可

时刻注意自己的防火墙有没有关闭,有些不知名的原因是因为防火墙没有关闭造成的!

用了三四天时间才解决了这个问题,期间走了不少弯路,因为刚开始接触hadoopstormonyarn,因此有时候出错误了不知道怎么去查错,开始时只是自己估计是哪出了问题,然后改一下重新跑一下,结果还是不行,后来学会了去查错误log,在masterhost:8088/logs/下就是所有的错误日志,然后查找相关的错误日志排错事半功倍

致谢:google

吐槽一下万恶的网G络F审W查¥制#度,我操我操我操我操我操!!!Internet上的闭关锁国!!!


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: