2

这是一个奇怪的问题。当我的笔记本断电并自行关机时,我正在运行 MR 作业(单节点)。由于 ubuntu 10.04 中缺少“无电池”警告

当我再次启动并尝试启动hadoop(单节点)时,一切顺利,当我从命令行发出“jps”时,列出了所有主从进程。我还尝试发出“netstat -plten | grep java”。

命令行输出:

hduser@fox:~$ jps
10476 数据节点
1819
10696 工作跟踪器
10813 任务跟踪器
11741 日元
10605 次要名称节点
10360 名称节点

hduser@fox:~$ sudo netstat -plten | grep java
tcp 0 0 0.0.0.0:55376 0.0.0.0:* 听 1000 141925 10476/java      
tcp 0 0 0.0.0.0:42352 0.0.0.0:* 听 1000 141790 10360/java      
tcp 0 0 0.0.0.0:50070 0.0.0.0:* 听 1000 142727 10360/java      
tcp 0 0 0.0.0.0:50010 0.0.0.0:* 听 1000 142818 10476/java      
tcp 0 0 0.0.0.0:50075 0.0.0.0:* 听 1000 143308 10476/java      
tcp 0 0 0.0.0.0:50020 0.0.0.0:* 听 1000 146358 10476/java      
tcp 0 0 127.0.0.1:38533 0.0.0.0:* 听 1000 143217 10813/java      
tcp 0 0 102.173.156.27:54310 0.0.0.0:* 听 1000 141913 10360/java      
tcp 0 0 102.173.156.27:54311 0.0.0.0:* 听 1000 142359 10696/java      
tcp 0 0 0.0.0.0:50090 0.0.0.0:* 听 1000 142827 10605/java      
tcp 0 0 0.0.0.0:56779 0.0.0.0:* 听 1000 142191 10605/java      
tcp 0 0 0.0.0.0:55373 0.0.0.0:* 听 1000 142251 10696/java      
tcp 0 0 0.0.0.0:50030 0.0.0.0:* 听 1000 142921 10696/java

我检查了作业跟踪器日志文件:

2013-01-09 16:40:52,286 警告 org.apache.hadoop.hdfs.DFSClient:块空错误数据节点 [0] 节点的错误恢复 == null
2013-01-09 16:40:52,286 警告 org.apache.hadoop.hdfs.DFSClient:无法获取块位置。源文件“/home/hduser/hadoop/tmpnew/mapred/system/jobtracker.info” - 中止...
2013-01-09 16:40:52,286 警告 org.apache.hadoop.mapred.JobTracker:写入文件 hdfs://master:54310/home/hduser/hadoop/tmpnew/mapred/system/jobtracker.info 失败!
2013-01-09 16:40:52,287 警告 org.apache.hadoop.mapred.JobTracker:文件系统尚未准备好!
2013-01-09 16:40:52,290 警告 org.apache.hadoop.mapred.JobTracker:无法初始化恢复管理器。
org.apache.hadoop.ipc.RemoteException: java.io.IOException: 文件 /home/hduser/hadoop/tmpnew/mapred/system/jobtracker.info 只能复制到 0 个节点,而不是 1 个
    在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1558)
    在 org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:696)
    在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    在 java.lang.reflect.Method.invoke(Method.java:597)
    在 org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563)
    在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388)
    在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384)
    在 java.security.AccessController.doPrivileged(本机方法)
    在 javax.security.auth.Subject.doAs(Subject.java:396)
    在
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
    在 org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382)
    在 org.apache.hadoop.ipc.Client.call(Client.java:1070)
    在 org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
    在 $Proxy5.addBlock(未知来源)
    在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    在 java.lang.reflect.Method.invoke(Method.java:597)
    在 org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
    在 org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
    在 $Proxy5.addBlock(未知来源)
    在 org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.locateFollowingBlock(DFSClient.java:3510)
    在 org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:3373)
    在 org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2600(DFSClient.java:2589)
    在 org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:2829)
2013-01-09 16:41:02,291 警告 org.apache.hadoop.mapred.JobTracker:重试...
2013-01-09 16:41:02,331 警告 org.apache.hadoop.hdfs.DFSClient:DataStreamer 异常:org.apache.hadoop.ipc.RemoteException:java.io.IOException:文件/home/hduser/hadoop/tmpnew/ mapred/system/jobtracker.info 只能复制到 0 个节点,而不是 1 个
    在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1558)
    在 org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:696)
    在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    在 java.lang.reflect.Method.invoke(Method.java:597)
    在 org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563)
    在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388)
    在 org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384)
    在 java.security.AccessController.doPrivileged(本机方法)
    在 javax.security.auth.Subject.doAs(Subject.java:396)
    在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
    在 org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382)

    在 org.apache.hadoop.ipc.Client.call(Client.java:1070)
    在 org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
    在 $Proxy5.addBlock(未知来源)
    在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    在 java.lang.reflect.Method.invoke(Method.java:597)
    在 org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
    在 org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
    在 $Proxy5.addBlock(未知来源)
    在 org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.locateFollowingBlock(DFSClient.java:3510)
    在 org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:3373)
    在 org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2600(DFSClient.java:2589)
    在 org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:2829)

我无法使用 URL 看到 tasktracker - master:50060

因此我感觉tasktracker没有正确启动。

帮助表示赞赏。

4

2 回答 2

1

确保您的 HDFS 已退出安全模式。如果没有,请使用“bin/hadoop dfsadmin -safemode leave”来执行此操作。

于 2013-01-10T00:21:03.017 回答
0

名称节点格式仍然存在错误。必须使用全新安装设置不同的用户帐户。问题解决了。

于 2013-01-27T22:47:33.463 回答