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或更高版本,所以,试试这个配置。默认情况下 ma​​sters 文件(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/ma​​pred-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:数据节点未在从属设备上启动的主要内容,如果未能解决你的问题,请参考以下文章

hadoop start-dfs 不在从属设备上创建数据节点

Hadoop:从节点未启动

Hadoop 2.9 多节点

为啥我们需要 Hadoop 无密码 ssh?

Android 活动未在某些设备上启动(错误膨胀类)

startForegroundService() 未在 2 台三星设备上启动服务