Hadoop:Datanodes可用:0(总共0,0死)

问题描述 投票:3回答:8

每次我跑:

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. 主,作业跟踪器和数据节点运行正常。
hadoop
8个回答
1
投票

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

tcp 0 0 127.0.1.1:9000 ...

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

192.168.1.1 master

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


0
投票

嗯...

你检查防火墙了吗?

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

然后再试一次。


0
投票

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


0
投票

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


0
投票

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


0
投票

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

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

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


0
投票

刚刚按照以下步骤解决了问题 -

  1. 确保/etc/hosts文件中主节点和从节点的IP地址正确无误
  2. 除非你真的需要数据,stop-dfs.sh,删除主/从节点中的所有data目录,然后运行hdfs namenode -formatstart-dfs.sh。这应该重新创建hdfs并修复问题

0
投票

只是格式化namenode对我来说不起作用。所以我检查了$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

这解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.