Hadoop:数据节点未在从属设备上启动
Posted
技术标签:
【中文标题】Hadoop:数据节点未在从属设备上启动【英文标题】:Hadoop: datanode not starting on slave 【发布时间】:2018-04-21 18:17:54 【问题描述】:我有两个使用 Ubuntu 12.04 的虚拟机。我正在尝试设置 Hadoop 多节点,但在执行 hadoop/sbin/start-dfs.sh
我在我的主服务器上看到以下进程:
20612 DataNode
20404 NameNode
20889 SecondaryNameNode
21372 Jps
然而,奴隶里什么都没有。另外,当我做hdfs dfsadmin -report
时,我只看到:
Live datanodes (1):
Name: 10.222.208.221:9866 (master)
Hostname: master
我检查了日志,我的 start-dfs.sh 甚至没有尝试在我的从站上启动 datanode。 我正在使用以下配置:
#/etc/hosts
127.0.0.1 localhost
10.222.208.221 master
10.222.208.68 slave-1
更改了各自系统中 /etc/hostname 中的主机名 此外,我可以从主系统 ping slave-1,反之亦然。
/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
#hadoop/etc/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///hadoop/data/namenode</value>
<description>NameNode directory</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///hadoop/data/datanode</value>
<description>DataNode directory</description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>
我还在我的主从系统上的/hadoop/etc/master
和/hadoop/etc/slaves
中添加了master 和slave-1。
我也尝试过清理数据/*,然后在start-dfs.sh
之前清理hdfs namenode -format
,但问题仍然存在。
另外,我将网络适配器设置标记为桥接适配器。
datanode没有在slave上启动的任何可能原因?
【问题讨论】:
mapred.job.tracker
在 Hadoop2 中不存在,但这不是 DFS 问题...您可以将日志输出添加到问题中吗?您还确定要在 2 个数据节点上创建 3 个副本吗? FWIW,Apache Ambari 有一个自动化的 Hadoop 安装程序
我整天都在为此苦恼。很想得到一个答案。我的数据节点比 OP 多一个,但除此之外我的配置看起来几乎相同。不知道为什么 start-dfs.sh 在我的名称节点上启动一个数据节点。
【参考方案1】:
不能声称有答案,但我找到了这个"start-all.sh" and "start-dfs.sh" from master node do not start the slave node services?
将我的 slaves 文件更改为 workers 文件,然后点击所有内容。
【讨论】:
【参考方案2】:看来您使用的是hadoop-2.x.x或更高版本,所以,试试这个配置。默认情况下 masters 文件(hadoop-2.x.x/etc/hadoop/masters
) 在 hadoop-2.x.x 以后将不可用。
hadoop-2.x.x/etc/hadoop/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
~/etc/hadoop/hdfs-site.xml:
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///hadoop/data/namenode</value>
<description>NameNode directory</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///hadoop/data/datanode</value>
<description>DataNode directory</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
~/etc/hadoop/mapred-site.xml:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
~/etc/hadoop/yarn-site.xml:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
~/etc/hadoop/奴隶
slave-1
从master复制上面所有配置的文件,替换到slave上这个路径hadoop-2.x.x/etc/hadoop/.
【讨论】:
感谢您的解决方案。我没有意识到“工人”在 hadoop 2.x 中被称为“奴隶”。以上是关于Hadoop:数据节点未在从属设备上启动的主要内容,如果未能解决你的问题,请参考以下文章