2

我正在按照michael-noll教程学习 hadoop。当我尝试通过运行来运行 wordcount 示例hadoop jar hadoop-examples-1.2.1.jar wordcount tmp/Files tmp/Output时,出现以下错误:

2010 年 13 月 11 日 18:09:42 信息 ipc.Client:重试连接到服务器:localhost/127.0.0.1:54311。已尝试 0 次;重试策略为 RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)

. .

2010 年 13 月 11 日 18:09:51 错误 security.UserGroupInformation:PriviledgedActionException as:hduser 原因:java.net.ConnectException:调用 localhost/127.0.0.1:54311 连接异常失败:java.net.ConnectException:连接被拒绝 java .net.ConnectException:调用 localhost/127.0.0.1:54311 连接异常失败:java.net.ConnectException:连接被拒绝

org.apache.hadoop.ipc.Client.wrapException(Client.java:1142) 在 org.apache.hadoop.ipc.Client.call(Client.java:1118) 在 org.apache.hadoop.ipc.RPC$Invoker。在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler .java:85) 在 org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:62) 在 org.apache.hadoop.mapred.$Proxy2.getProtocolVersion(Unknown Source) 在 org.apache.hadoop。 ipc.RPC.checkVersion(RPC.java:422) 在 org.apache.hadoop.mapred.JobClient.createProxy(JobClient.java:559) 在 org.apache.hadoop.mapred.JobClient.init(JobClient.java:498) 在 org.apache.hadoop.mapred .JobClient.(JobClient.java:479) at org.apache.hadoop.mapreduce.Job$1.run(Job.java:563) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject .doAs(Subject.java:415) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190) 在 org.apache.hadoop.mapreduce.Job.connect(Job.java:561) 在 org. apache.hadoop.mapreduce.Job.submit(Job.java:549) 在 org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:580) 在 org.apache.hadoop.examples.WordCount.main(WordCount. java:82) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl。invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.ProgramDriver $ProgramDescription.invoke(ProgramDriver.java:68) at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139) at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:64) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method。在 org.apache.hadoop.util.RunJar.main(RunJar.java:160) 调用(Method.java:606),原因是:java.net.ConnectException:连接在 sun.nio.ch 被拒绝。SocketChannelImpl.checkConnect(Native Method) 在 sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:708) 在 org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) 在 org.apache.hadoop。 net.NetUtils.connect(NetUtils.java:511) 在 org.apache.hadoop.net.NetUtils.connect(NetUtils.java:481) 在 org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java: 457)在 org.apache.hadoop.ipc.Client$Connection.access$2200(Client.java:205)在 org.apache. hadoop.ipc.Client.getConnection(Client.java:1249) at org.apache.hadoop.ipc.Client.call(Client.java:1093) ... 33 更多在 org.apache.hadoop.net.NetUtils.connect(NetUtils.java:511) 在 org.apache.hadoop.net.NetUtils.connect(NetUtils.java:481) 在 org.apache.connect(SocketIOWithTimeout.java:206) .hadoop.ipc.Client$Connection.setupConnection(Client.java:457) 在 org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:583) 在 org.apache.hadoop.ipc.Client$Connection .access$2200(Client.java:205) at org.apache.hadoop.ipc.Client.getConnection(Client.java:1249) at org.apache.hadoop.ipc.Client.call(Client.java:1093) .. . 33 更多在 org.apache.hadoop.net.NetUtils.connect(NetUtils.java:511) 在 org.apache.hadoop.net.NetUtils.connect(NetUtils.java:481) 在 org.apache.connect(SocketIOWithTimeout.java:206) .hadoop.ipc.Client$Connection.setupConnection(Client.java:457) 在 org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:583) 在 org.apache.hadoop.ipc.Client$Connection .access$2200(Client.java:205) at org.apache.hadoop.ipc.Client.getConnection(Client.java:1249) at org.apache.hadoop.ipc.Client.call(Client.java:1093) .. . 33 更多hadoop.ipc.Client$Connection.access$2200(Client.java:205) at org.apache.hadoop.ipc.Client.getConnection(Client.java:1249) at org.apache.hadoop.ipc.Client.call(Client .java:1093) ... 33 更多hadoop.ipc.Client$Connection.access$2200(Client.java:205) at org.apache.hadoop.ipc.Client.getConnection(Client.java:1249) at org.apache.hadoop.ipc.Client.call(Client .java:1093) ... 33 更多

附录

我只是重新运行了这样的命令bin/stop-all.sh, bin/start-all.sh, hadoop jar hadoop-examples-1.2.1.jar wordcount tmp/Files tmp/Output. 但现在出现以下错误:

2010 年 13 月 11 日 20:52:12 错误 security.UserGroupInformation: PriviledgedActionException as:hduser cause:org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.mapred.SafeModeException: JobTracker 在 org.apache 处于安全模式.hadoop.mapred.JobTracker.checkSafeMode(JobTracker.java:5188) 在 org.apache.hadoop.mapred.JobTracker.getStagingAreaDir(JobTracker.java:3677) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop。 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1432) 中的 org.apache.hadoop.ipc 中的 ipc.RPC$Server.call(RPC.java:587)。Server$Handler$1.run(Server.java:1428) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security .UserGroupInformation.doAs(UserGroupInformation.java:1190) 在 org.apache.hadoop.ipc.Server$Handler.run(Server.java:1426)

org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.mapred.SafeModeException: JobTracker 在 org.apache.hadoop.mapred.JobTracker.checkSafeMode(JobTracker.java:5188) 在 org.apache.hadoop 处于安全模式.mapred.JobTracker.getStagingAreaDir(JobTracker.java:3677) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

请帮忙

4

2 回答 2

1

尝试手动关闭安全模式:

hadoop dfsadmin -safemode off

或者

hadoop dfsadmin -safemode leave

然后重新运行你的工作。

于 2013-11-10T21:30:36.340 回答
0

这是因为您的 JobTracker 处于安全模式,而不是 nameNode。使用以下命令确保 JT 未处于安全模式:

bin/hadoop mradmin -safemode leave

您可以随时使用下面显示的命令来检查您的 NN 和 JT 是否超出了安全模式;

bin/hadoop mradmin -safemode get

bin/hadoop dfsadmin -safemode get

另外,请确保您使用正确的用户来启动守护程序。

在此处输入图像描述

@Praveen Sripati:请看倒数第二个选项。

于 2013-11-10T23:36:10.600 回答