hadoop启动错误:datanode、tasktracker无法启动和数据复制错误

hadoop startup errors: datanode, tasktracker won't start and data replication error

我正在尝试在一个由 5 台机器组成的(测试)集群上安装 Hadoop 1.2.1,其中一个节点用作 JobTracker、NameNode 和 Secondary NameNode。其余 4 台机器都是从机。

有两个问题。

1)在master的conf/masters和conf/slaves文件中,我分别提供了master和slave的IP地址。在从机上,masters 文件是空的,slaves 文件包含自己的 IP。

启动 hadoop (bin/start-all.sh) 时,TaskTracker 和 DataNode 不启动。我将这些机器的主机名放入 /etc/hosts 文件中,并尝试将它们的主机名也放入 masters 和 slaves 文件中。这没有任何区别——TaskTracker 和 DataNode 没有启动。

在启动 hadoop 服务时,我收到一条消息,提示已写入 TaskTracker 和 DataNode 日志。但奇怪的是,我没有在那个位置找到它们。以下是我收到的消息

10.6.80.4: starting datanode, logging to /home/ubuntu/hadoop-1.2.1/libexec/../logs/hadoop-ubuntu-datanode-dsparq-instance4.out

10.6.80.2: starting tasktracker, logging to /home/ubuntu/hadoop-1.2.1/libexec/../logs/hadoop-ubuntu-tasktracker-dsparq-instance2.out

2) 在JobTracker/NameNode 日志中,多次列出以下异常。

error: java.io.IOException: File <> could only be replicated to 0 nodes, instead of 1

这些问题的解决方案(在 Whosebug 上)建议重新格式化 hdfs 并检查 /etc/hosts 的条目。我尝试了他们两个,但这没有帮助。

请告诉我如何修复这些错误。提前谢谢你。


添加 core-site.xml 和 mapred-site.xml 的内容(所有机器上相同)

核心-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

<property>
<name>fs.default.name</name>
<value>hdfs://10.6.80.21:8020</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/hdfs</value>
</property>

</configuration>

mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

<property>
<name>mapred.job.tracker</name>
<value>hdfs://10.6.80.21:8021</value>
</property>

</configuration>

应该将日志写入 *.out 文件,但它不包含太多信息。在 /var/log/hadoop/ 目录中查找 *.log 文件以获取有关 namenode 或其他恶魔的最新日志(如果您有基于 RPM 的安装,否则请查看 $HADOOP_HOME 日志文件夹)。考虑到上述问题,请确保所有节点中的 core-site.xml 都指定了名称节点的详细信息。类似地检查整个集群的mapred-site.xml,它应该包含jobtracker的地址。

还要确保在整个集群中维护主机名,或者您可以只使用 ip 地址。 hadoop.tmp.dir(我们在核心站点中提到的位置)必须在集群中创建,并且它应该具有适当的文件权限,以便您的 hdfs 用户可以执行 read/writes.

核心-site.xml

<property>
      <name>hadoop.tmp.dir</name>
      <value>/loation/for/temp/dir</value>
      <description>A base for other temporary directories.</description>
    </property>

    <property>
      <name>fs.default.name</name>
      <value>hdfs://namenodehostname</value>
      <description>The name of the default file system.</description>
    </property>

Mapred-site.xml

<property>
  <name>mapred.job.tracker</name>
  <value>jobtrackerhostname</value>
  <description>The host and port that the MapReduce job tracker
  </description>
</property>

如果您觉得上述所有属性都已在您的集群中设置并且仍然面临问题。请更新您的完整日志以及配置文件。