分享

有关Hadoop2.6.0开放端口后提交作业报错问题

幻灭若水 发表于 2015-3-12 15:35:00 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 25980
起初我安装完Hadoop2.6.0后关闭各个服务器的防火墙,提交作业是没有问题的。但是未来用到生产环境中,关闭防火墙不是有效解决办法,于是根据这个资料http://www.aboutyun.com/thread-7513-1-1.html,将相关端口都开放了,Hadoop集群启动没有问题,但提交作业时报错如下:15/03/12 14:42:49 INFO input.FileInputFormat: Total input paths to process : 1
15/03/12 14:42:49 INFO mapreduce.JobSubmitter: number of splits:2
15/03/12 14:42:49 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1426142360358_0001
15/03/12 14:42:49 INFO impl.YarnClientImpl: Submitted application application_1426142360358_0001
15/03/12 14:42:49 INFO mapreduce.Job: The url to track the job: http://imageHandler1:8088/proxy/application_1426142360358_0001/
15/03/12 14:42:49 INFO mapreduce.Job: Running job: job_1426142360358_0001
15/03/12 14:43:20 INFO mapreduce.Job: Job job_1426142360358_0001 running in uber mode : false
15/03/12 14:43:20 INFO mapreduce.Job:  map 0% reduce 0%
15/03/12 14:43:21 INFO mapreduce.Job: Job job_1426142360358_0001 failed with state FAILED due to: Application application_1426142360358_0001 failed 3 times due to Error launching appattempt_1426142360358_0001_000003. Got exception: java.net.NoRouteToHostException: No Route to Host from  imageHandler1/192.168.0.14 to imageHandler2:33920 failed on socket timeout exception: java.net.NoRouteToHostException: No route to host; For more details see:  http://wiki.apache.org/hadoop/NoRouteToHost
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791)
        at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:757)
        at org.apache.hadoop.ipc.Client.call(Client.java:1472)
        at org.apache.hadoop.ipc.Client.call(Client.java:1399)
        at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232)
        at com.sun.proxy.$Proxy35.startContainers(Unknown Source)
        at org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagementProtocolPBClientImpl.startContainers(ContainerManagementProtocolPBClientImpl.java:96)
        at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.launch(AMLauncher.java:119)
        at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.run(AMLauncher.java:254)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.NoRouteToHostException: No route to host
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
        at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
        at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:530)
        at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:494)
        at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:607)
        at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:705)
        at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:368)
        at org.apache.hadoop.ipc.Client.getConnection(Client.java:1521)
        at org.apache.hadoop.ipc.Client.call(Client.java:1438)
        ... 9 more
. Failing the application.
15/03/12 14:43:21 INFO mapreduce.Job: Counters: 0

我想问下有人遇到过这样的问题吗,是不是我还少开放了一些端口?希望能够收到回复,谢谢。

已有(5)人评论

跳转到指定楼层
arsenduan 发表于 2015-3-12 16:46:18
试试打开33920 端口
回复

使用道具 举报

幻灭若水 发表于 2015-3-12 16:50:39
arsenduan 发表于 2015-3-12 16:46
试试打开33920 端口

不行的,每次提交作业端口都会变,我测试了几次,基本在30000-50000之间,但在源码中没找到相关的代码。。。
回复

使用道具 举报

nextuser 发表于 2015-3-12 17:23:45
rpc端口是动态分配的,所以才会产生这种情况
参考这篇,限定下动态端口试试

如何配置与防火墙一起使用的 RPC 动态端口分配

回复

使用道具 举报

幻灭若水 发表于 2015-3-12 17:31:23
nextuser 发表于 2015-3-12 17:23
rpc端口是动态分配的,所以才会产生这种情况
参考这篇,限定下动态端口试试

这个是使用windows的,我是在centos中安装的集群,不适用吧,还是谢谢了
回复

使用道具 举报

幻灭若水 发表于 2015-3-17 11:43:46
我大致查看了下hadoop2.6.0有关mrappmaster注册的源码,发现注册的端口设置的是0,也就是动态分配端口。我上百度百科查,动态端口的范围是从49152到65535,理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。在我测试的过程中,mrappmaster确实占用过30000多的端口 所以我打开了防火墙 ,并开放了32768-65535的端口。测试几次不再报错了。不过还得通过大量的测试才知道是否可行。还有就是这种开放端口的方式不知道好不好,我没有搞过运维,不知道是否存在安全隐患。但关闭防火墙的方法好像更不好呢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条