【发布时间】: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_dirslaves文件中设置了从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 上
-
您能添加您的主机文件条目吗?
-
查看我的更新,谢谢
-
您能否澄清一下:如果您删除:
或dfs.datanode.https.address slave:50475 或dfs.datanode.https.address slaveVM1:50475 能用吗?dfs.datanode.http.address slaveVM1:9005
标签: hadoop ssh hadoop-yarn master-slave