4

每次我跑:

hadoop dfsadmin -report

我得到以下输出:

Configured Capacity: 0 (0 KB)
Present Capacity: 0 (0 KB)
DFS Remaining: 0 (0 KB)
DFS Used: 0 (0 KB)
DFS Used%: �%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0

-------------------------------------------------
Datanodes available: 0 (0 total, 0 dead)
  1. 我的 dfs/ 文件夹中没有数据目录。
  2. 此文件夹中存在锁定文件:in_use.lock
  3. 主节点、作业跟踪器和数据节点运行良好。
4

9 回答 9

1

我遇到了完全相同的问题,当我检查 datanodes 日志时,有很多could not connect to master:9000,当我通过检查 master 上的端口时,netstat -ntlp我在输出中有这个:

tcp 0 0 127.0.1.1:9000 ...

我意识到我应该更改我的主机名称或更改master所有配置。我决定做第一个,因为它似乎更容易。所以我修改/etc/hosts并更改127.0.1.1 master127.0.1.1 master-machine并在文件末尾添加了一个条目,如下所示:

192.168.1.1 master

然后我更改mastermaster-machinein/etc/hostname并重新启动机器。问题消失了。

于 2013-12-10T10:44:24.760 回答
1

请检查数据节点日志。当无法向 namenode 报告时,它将记录错误。如果您发布这些错误,人们将能够提供帮助..

于 2013-01-31T15:47:46.017 回答
0

嗯……

你检查防火墙了吗?

当我使用 hadoop 时,我关闭了防火墙(iptables -F,在所有节点中)

然后再试一次。

于 2013-01-31T00:37:21.303 回答
0

当我们重新启动集群时,它发生在我们身上。但过了一会儿,自动检测到数据节点。可能是因为块报告延迟时间属性。

于 2014-06-03T09:52:30.893 回答
0

刚刚通过以下步骤解决了这个问题 -

  1. 确保主节点和从节点的 IP 地址在/etc/hosts文件中正确
  2. 除非你真的需要数据,否则stop-dfs.sh,删除data主/从节点中的所有目录,然后运行hdfs namenode -formatstart-dfs.sh。这应该重新创建 hdfs 并解决问题
于 2018-08-29T18:01:18.607 回答
0

通常在数据节点中存在命名空间 id 问题的错误。所以从master中删除名称dir并从datanodes中删除data dir。现在格式化datanode并尝试start-dfs。该报告通常需要一些时间来反映所有数据节点。即使我得到了 0 个数据节点,但经过一段时间主检测到从属。

于 2015-10-13T23:51:03.467 回答
0

我有同样的问题,我刚刚解决了。

所有节点的 /etc/hosts 应如下所示:

127.0.0.1 localhost xxx.xxx.xxx.xxx master xxx.xxx.xxx.xxx slave-1 xxx.xxx.xxx.xxx slave-2

于 2016-11-04T17:20:48.520 回答
0

只是格式化名称节点对我不起作用。所以我检查了日志$HADOOP_HOME/logs。在secondarynamenode中,我发现了这个错误:

ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint
java.io.IOException: Inconsistent checkpoint fields.
LV = -64 namespaceID = 2095041698 cTime = 1552034190786 ; clusterId = CID-db399b3f-0a68-47bf-b798-74ed4f5be097 ; blockpoolId = BP-31586866-127.0.1.1-1552034190786.
Expecting respectively: -64; 711453560; 1550608888831; CID-db399b3f-0a68-47bf-b798-74ed4f5be097; BP-2041548842-127.0.1.1-1550608888831.
    at org.apache.hadoop.hdfs.server.namenode.CheckpointSignature.validateStorageInfo(CheckpointSignature.java:143)
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doCheckpoint(SecondaryNameNode.java:550)
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doWork(SecondaryNameNode.java:360)
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode$1.run(SecondaryNameNode.java:325)
    at org.apache.hadoop.security.SecurityUtil.doAsLoginUserOrFatal(SecurityUtil.java:482)
    at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.run(SecondaryNameNode.java:321)
    at java.lang.Thread.run(Thread.java:748)

所以我停止了 hadoop,然后专门格式化了给定的集群 id:

hdfs namenode -format -clusterId CID-db399b3f-0a68-47bf-b798-74ed4f5be097

这解决了问题。

于 2019-03-08T08:42:21.510 回答
0

这也可能发生还有另一个不为人知的原因:您的数据节点没有正常启动,但其他一切都在工作。

就我而言,在查看日志时,我发现绑定端口 510010 已被 SideSync(用于 MacOS)使用。我是通过 找到的 sudo lsof -iTCP -n -P|grep 0010,但是您可以使用类似的技术来确定可能已经占用了您众所周知的数据节点端口的内容。

将其关闭并重新启动即可解决问题。

此外,如果您以 root 身份安装了 Hadoop/Yarn,但在各个主目录中有数据目录,然后尝试以个人用户身份运行它,则必须公开数据节点目录。

于 2019-08-31T00:44:48.707 回答