【问题标题】:hadoop startup errors: datanode, tasktracker won't start and data replication errorhadoop 启动错误:datanode、tasktracker 无法启动和数据复制错误
【发布时间】:2015-04-13 16:55:05
【问题描述】:

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

有两个问题。

1) 在master的conf/masters和conf/slaves文件中,我分别提供了master和slave的IP地址。在从属服务器上,主控文件为空,从属文件包含自己的 IP。

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

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

10.6.80.4:启动datanode,登录到/home/ubuntu/hadoop-1.2.1/libexec/../logs/hadoop-ubuntu-datanode-dsparq-instance4.out

10.6.80.2:启动tasktracker,登录到/home/ubuntu/hadoop-1.2.1/libexec/../logs/hadoop-ubuntu-tasktracker-dsparq-instance2.out

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

错误:java.io.IOException:文件 只能复制到 0 节点,而不是 1

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

请告诉我如何解决这些错误。提前谢谢你。


添加core-site.xml和mapred-site.xml的内容(所有机器都一样)

核心站点.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>

【问题讨论】:

    标签: ubuntu hadoop mapreduce


    【解决方案1】:

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

    还要确保跨集群维护主机名,或者您可以只使用 IP 地址。 hadoop.tmp.dir(我们在 core-site 中提到的位置)必须在集群中创建,并且它应该具有适当的文件权限,以便您的 hdfs 用户可以执行读/写。

    Core-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>
    

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

    【讨论】:

    • 我检查了启动hadoop服务时给出的位置的日志(在我的问题中提到了这一点)。这是 $HADOOP_HOME/log 位置。我将 core-site.xml 和 mapred-site.xml 的内容添加到我的问题中。所有机器都是一样的。但这并没有解决我的问题。
    • 你的namenode活跃吗?你能查看namenode webUI吗?
    • 当我运行 start-all.sh 时,namenode 会启动(jps 将 namenode 显示为正在运行的进程之一)。我无权访问服务器的 UI 部分。您知道为什么 tasktracker/datanode 日志没有显示在日志文件夹中吗?
    • 我在错误的机器上寻找 tasktracker/datanode 日志。我认为主人也得到了这些日志。我在各个从属机器上找到了它们。 TaskTracker 错误尚未解决。在 DataNode 日志中,我得到 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: can not create directory: /hadoop/hdfs/dfs/data 2015-04-13 21:44:57,642 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid.
    • 好的 .. 是的,它应该存在。
    猜你喜欢
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 2022-12-22
    相关资源
    最近更新 更多