prateek@prateek:~$ start-dfs.sh
Starting namenodes on [localhost]
pdsh@prateek: localhost: ssh exited with exit code 1
Starting datanodes
Starting secondary namenodes [prateek]
prateek@prateek:~$ jps
11011 SecondaryNameNode
10787 DataNode
11161 Jps
prateek@prateek:~$
它会启动几次,但大多数都会抛出错误。也格式化名称节点。
我猜错误是关于 ssh 的。
您必须创建一个本地主机 ssh。你做到了吗?如果没有,那么我告诉你简单的命令:
- ssh-keygen
- ssh-copy-id -i .ssh/id_rsa.pub localhost
现在,尝试使用本地主机进行 ssh,它应该是无密码 ssh。然后尝试重新启动您的名称节点,它应该可以工作。
首先,停止 dfs 和yarn,使用:
stop-dfs.sh
或 (sbin/stop-dfs.sh
)
stop-yarn.sh
或 (sbin/stop-dfs.sh
)
然后使用此代码:
hdfs namenode -format -force
然后再次启动dfs和yarn:
start-dfs.sh
或 (sbin/start-dfs.sh
)
start-yarn.sh
或 ( sbin/start-yarn.sh
)
我也有同样的问题。 这是 hadoop/etc/hadoop 中的错误配置文件。 请检查hdfs-site.xml和core-site.xml配置是否正确。
这是我的配置: hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<property>
<name>dfs.namenode.fs-limits.min-block-size</name>
<value>32768</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///opt/hadoop-3.3.0/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///opt/hadoop-3.3.0/hdfs/datanode</value>
</property>
<property>
<name>dfs.permission.enabled</name>
<value>false</value>
</property>
</configuration>
和 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://bd-1:9000</value>
</property>
<property>
<name>hadoop.user.group.static.mapping.overrides</name>
<value>dr.who=;hduser=hduser;</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>hduser</value>
</property>
</configuration>
您必须更改用户和路径!
在 hdfs-site.xml 中,您可以看到那里定义了两个文件。 (文件:///opt/hadoop-3.3.0/hdfs/namenode 和文件:///opt/hadoop-3.3.0/hdfs/datanode) 确保您使用
创建这些文件mkdir -p /opt/hadoop-3.3.0/hdfs/namenode
否则你可能会遇到权限错误。
你可以
chown -R hduser:hduser /opt/hadoop
确保所有权限均正确。
确保你做
hdfs namenode -format
重新开始之前。
(THX 2 j.paravicini)
问题不在于 NameNode,而在于 SSH 连接。 NameNode 正在尝试通过无密码 SSH 连接连接到本地主机,这需要设置 RSA 公钥。请按照以下步骤解决问题:
如果 SSH 到 localhost 仍然提示输入密码,则表明未使用公钥。检查相关日志以获取更多信息:
如果是权限问题,请使用以下命令更改权限:
尝试再次连接到本地主机。这些步骤应该可以解决 SSH 连接问题。