hadoop start-dfs 不在从属设备上创建数据节点
Posted
技术标签:
【中文标题】hadoop start-dfs 不在从属设备上创建数据节点【英文标题】:hadoop's start-dfs not creating datanode on the slave 【发布时间】:2021-12-06 06:21:56 【问题描述】:我正在尝试在两个节点上设置一个 Hadoop 集群。我的主节点上的start-dfs.sh
正在打开一个窗口,并且在窗口关闭后不久,当我执行start-dfs
它记录namenode 已正确启动,但datanode 未正确启动并记录以下内容:
Problem binding to [slave-VM1:9005] java.net.BindException: Cannot assign requested address: bind; For more details see: http://wiki.apache.org/hadoop/BindException
我已经设置了
ssh-keygen -t rsa -P ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(并且还使用正确的公钥设置adminstrators_authorized_keys
文件)(ssh user@remotemachine 也在工作并提供对从属设备的访问权限)
这是我在主机和从机 (Windows) 上的完整 Hadoop 配置集:
hdfs-site.xml :
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/C:/Hadoop/hadoop-3.2.2/data/namenode</value>
</property>
<property>
<name>dfs.datanode.https.address</name>
<value>slaveVM1:50475</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/C:/Hadoop/hadoop-3.2.2/data/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
core-site.xml :
<configuration>
<property>
<name>dfs.datanode.http.address</name>
<value>slaveVM1:9005</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://masterVM2:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/C:/Hadoop/hadoop-3.2.2/hadoopTmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://masterVM2:8020</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>masterVM2:9001</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>%HADOOP_HOME%/share/hadoop/mapreduce/*,%HADOOP_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_HOME%/share/hadoop/common/*,%HADOOP_HOME%/share/hadoop/common/lib/*,%HADOOP_HOME%/share/hadoop/yarn/*,%HADOOP_HOME%/share/hadoop/yarn/lib/*,%HADOOP_HOME%/share/hadoop/hdfs/*,%HADOOP_HOME%/share/hadoop/hdfs/lib/*</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.acl.enable</name>
<value>0</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
PS:我是两台机器的管理员,我设置了 HADOOP_CONF_DIR
C:\Hadoop\hadoop-3.2.2\etc\hadoop
我还在hadoop_conf_dir
slaves
文件中设置了从IP。
PS:如果我删除代码:
<property>
<name>dfs.datanode.https.address</name>
<value>slave:50475</value>
</property>
来自hdfs-site.xml
然后datanote和namenode都在主节点上启动。
主机:
*.*.*.* slaveVM1
*.*.*.* masterVM2
...是各个机器的IP,其他的条目都被注释掉了
【问题讨论】:
您应该报告您使用的是 windows、mac 还是 linux。如果您使用任何特殊设置。我看到你有'C:'引用,所以它可能是你正在运行的窗口,但不想假设 是的,我在 Windows server 19 上 您能添加您的主机文件条目吗? 查看我的更新,谢谢 您能否澄清一下:如果您删除:这通常会发生
BindException:无法分配请求的地址:bind;
当端口在使用中。意思可能是应用程序已经启动,或者之前启动但没有正确关闭,或者另一个应用程序正在使用该端口。尝试重新启动,(作为一种严厉但相当有效的清除端口的方法)。
【讨论】:
不,我通过更改端口进行了检查(我在检查所选端口的可用性时做了很多次)但无论我使用什么端口号,该异常仍然显示 看起来主服务器并没有尝试连接到从服务器,除了workers
文件之外,将从服务器暴露给主服务器涉及的配置是什么?以上是关于hadoop start-dfs 不在从属设备上创建数据节点的主要内容,如果未能解决你的问题,请参考以下文章
Hadoop 数据节点服务未在 hadoop 中的从属设备中启动
第一次部署Hadoop2.5.2集群,部署完后一切正常,但是当关闭后集群用start-dfs.sh重启h后namenode会都死掉