0

我正在尝试在 8 节点 IB (OFED-1.5.3-4.0.42) 集群上部署 Hadoop-RDMA 并遇到以下问题(又名文件 ... 只能复制到 0 个节点,而不是 1 个):

frolo@A11:~/hadoop-rdma-0.9.8> ./bin/hadoop dfs -copyFromLocal ../pg132.txt /user/frolo/input/pg132.txt
警告:不推荐使用 $HADOOP_HOME。

14/02/05 19:06:30 警告 hdfs.DFSClient:DataStreamer 异常:java.lang.reflect.UndeclaredThrowableException
    在 com.sun.proxy.$Proxy1.addBlock(未知来源)
    在 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(未知来源)
    在 org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(未知来源)
    在 com.sun.proxy.$Proxy1.addBlock(未知来源)
    在 org.apache.hadoop.hdfs.From.Code(未知来源)
    在 org.apache.hadoop.hdfs.From.F(未知来源)
    在 org.apache.hadoop.hdfs.From.F(未知来源)
    在 org.apache.hadoop.hdfs.The.run(未知来源)
引起:org.apache.hadoop.ipc.RemoteException:java.io.IOException:文件/user/frolo/input/pg132.txt只能复制到0个节点,而不是1个
    在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(未知来源)
    在 org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(未知来源)
    在 sun.reflect.GeneratedMethodAccessor6.invoke(未知来源)
    在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    在 java.lang.reflect.Method.invoke(Method.java:606)
    在 org.apache.hadoop.ipc.RPC$Server.call(未知来源)
    在 org.apache.hadoop.ipc.rdma.madness.Code(未知来源)
    在 org.apache.hadoop.ipc.rdma.madness.run(未知来源)
    在 java.security.AccessController.doPrivileged(本机方法)
    在 javax.security.auth.Subject.doAs(Subject.java:415)
    在 org.apache.hadoop.security.UserGroupInformation.doAs(未知来源)
    在 org.apache.hadoop.ipc.rdma.be.run(未知来源)
    在 org.apache.hadoop.ipc.rdma.RDMAClient.Code(未知来源)
    在 org.apache.hadoop.ipc.rdma.RDMAClient.call(未知来源)
    在 org.apache.hadoop.ipc.Tempest.invoke(未知来源)
    ... 12 更多`

2005 年 14 月 2 日 19:06:30 警告 hdfs.DFSClient: 错误恢复 null 坏数据节点 [0] 节点 == null
14/02/05 19:06:30 警告 hdfs.DFSClient: 无法获取块位置。源文件“/user/frolo/input/pg132.txt” - 中止...
14/02/05 19:06:30 信息 hdfs.DFSClient: isClosed 中的异常

当我开始从本地文件系统复制到 HDFS 时,似乎数据没有传输到 DataNodes。我测试了 DataNodes 的可用性:

frolo@A11:~/hadoop-rdma-0.9.8> ./bin/hadoop dfsadmin -report
警告:不推荐使用 $HADOOP_HOME。

配置容量:0 (0 KB)
当前容量:0 (0 KB)
剩余 DFS:0 (0 KB)
使用的 DFS:0 (0 KB)
DFS 已用百分比:�%
在复制块下:0
具有损坏副本的块:0
缺少块:0`

-------------------------------------------------
可用的数据节点:0(总共 4 个,4 个死节点)`

`名称:10.10.1.13:50010
退役状态:正常
配置容量:0 (0 KB)
使用的 DFS:0 (0 KB)
未使用 DFS:0 (0 KB)
剩余 DFS:0(0 KB)
DFS 已用百分比:100%
DFS 剩余百分比:0%
最后联系时间:2 月 5 日星期三 19:02:54 MSK 2014


名称:10.10.1.14:50010
退役状态:正常
配置容量:0 (0 KB)
使用的 DFS:0 (0 KB)
未使用 DFS:0 (0 KB)
剩余 DFS:0(0 KB)
DFS 已用百分比:100%
DFS 剩余百分比:0%
最后联系时间:2 月 5 日星期三 19:02:54 MSK 2014


名称:10.10.1.16:50010
退役状态:正常
配置容量:0 (0 KB)
使用的 DFS:0 (0 KB)
未使用 DFS:0 (0 KB)
剩余 DFS:0(0 KB)
DFS 已用百分比:100%
DFS 剩余百分比:0%
最后联系时间:2 月 5 日星期三 19:02:54 MSK 2014


名称:10.10.1.11:50010
退役状态:正常
配置容量:0 (0 KB)
使用的 DFS:0 (0 KB)
未使用 DFS:0 (0 KB)
剩余 DFS:0(0 KB)
DFS 已用百分比:100%
DFS 剩余百分比:0%
最后联系时间:2014 年 2 月 5 日星期三 19:02:55 MSK

并尝试在已成功的 HDFS 文件系统中 mkdir。重启 Hadoop 守护进程没有产生任何积极影响。

你能帮我解决这个问题吗?谢谢你。

最好的,亚历克斯

4

2 回答 2

4

我发现了我的问题。该问题与已设置为 NFS 分区的 hadoop.tmp.dir 的配置有关。默认情况下,它配置为 /tmp,即本地 fs。从 core-site.xml 中删除 hadoop.tmp.dir 后,问题已解决。

于 2014-02-05T16:18:19.793 回答
0

在我的情况下,通过在 50010 端口上打开防火墙解决了这个问题

于 2019-02-28T10:38:19.367 回答