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

wkyowqbh  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(394)

我正在尝试将hadoop1.2.1安装在由5台机器组成的(测试)集群上,其中一个节点充当jobtracker、namenode和secondary namenode。其余的4台机器都是奴隶。
有两个问题。
1) 在master的conf/masters和conf/slaves文件中,我分别提供了master和slaves的ip地址。在从机上,主文件为空,从机文件包含自己的ip。
启动hadoop(bin/start all.sh)时,tasktracker和datanode不会启动。我在/etc/hosts文件中输入了这些机器的主机名,并尝试在masters和slaves文件中输入它们的主机名。这没有任何区别——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的内容(在所有计算机上相同)
core-site.xml文件

roejwanj

roejwanj1#

应该注意日志被写入*.out文件,但它不包含太多信息。。在/var/log/hadoop/目录中查找*.log文件,查找有关namenode或其他恶魔的最新日志(如果您有基于rpm的安装,请在$hadoop\u home log文件夹中查找)。针对上述问题,请确保所有节点中的core-site.xml都指定了namenode详细信息。类似地,检查集群中的mapred-site.xml,它应该包含jobtracker的地址。
还要确保在集群中维护主机名,或者只使用ip地址。hadoop.tmp.dir(我们在核心站点中提到的位置)必须在集群中创建,并且它应该具有适当的文件权限,以便您的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>

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

相关问题