【问题标题】:Hadoop 2.5.1 job stuck at map 0% and reduce 0%Hadoop 2.5.1 作业卡在地图 0% 并减少 0%
【发布时间】:2014-10-02 14:07:10
【问题描述】:

我正在尝试运行一个字数统计示例。我当前的测试设置是: NameNode 和 ResourceManager 在一台机器上(10.38.41.134)。 DataNode 和 NodeManager 在另一个 (10.38.41.135) 上。 他们可以在没有密码的情况下在它们之间进行 ssh。

阅读日志时,我没有收到任何警告,除了一个安全警告(我没有设置它进行测试)和一个 containermanager.AuxServices 'mapreduce_shuffle' 警告。提交示例作业后,节点对其做出反应并输出日志,这表明它们可以很好地通信。 NodeManager 输出内存使用情况,但作业没有让步。

我什至应该从哪里开始寻找问题?我能找到的其他一切要么是旧的,要么是不相关的。我遵循了 2.5.1 版的官方集群设置教程,其中有太多问题没有得到解答。

我的 conf 文件如下:

核心站点.xml

<configuration>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://10.38.41.134:9000</value>
</property>
</configuration>

hdfs-site.xml

<configuration>
<property>
  <name>dfs.namenode.rpc-bind-host</name>
  <value>0.0.0.0</value>
</property>
<property>
  <name>dfs.namenode.servicerpc-bind-host</name>
  <value>0.0.0.0</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
  <name>dfs.client.block.write.replace-datanode-on-failure.enable</name>
  <value>NEVER</value>
  <description>
  </description>
</property>
<property>
  <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
  <value>false</value>
</property>
</configuration>

mapred-site.xml

<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
  <description>The runtime framework for executing MapReduce jobs.
  Can be one of local, classic or yarn.
  </description>
</property>
</configuration>

yarn-site.xml

<configuration>
  <property>
    <name>yarn.nodemanager.delete.debug-delay-sec</name>
    <value>300</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>
  <property>
      <name>mapreduce.jobtracker.address</name>
      <value>10.38.41.134:50030</value>
  </property>
</configuration>

其他都是默认的。

【问题讨论】:

  • 您可能需要为数据节点分配更多内存。
  • 我怀疑是内存。 NodeManager 报告 2GB 内存中大约 240MB 的内存使用情况,并固定在那里。我什至尝试用最小的输入运行最简单的示例,这不应该占用大量内存。

标签: hadoop


【解决方案1】:

我建议您首先尝试让它与单个服务器集群一起工作,这样更容易调试。 当它工作时,继续使用两个节点。

如前所述,内存可能是个问题。在不调整设置的情况下,至少 2GB 似乎是最低限度,我建议每台服务器至少 4GB。还要记得检查作业的日志(在日志/用户日志下,尤其是 syslog 下)。

附:我与您一样对旧的/不相关的文档感到沮丧。

【讨论】:

  • 感谢您的提示。我怀疑这是内存,因为我正在尝试运行最简单的示例。这项工作的日志被证明是有用的。我现在很激动,因为我收到错误消息!!! :D org.apache.hadoop.ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8030 好像在乱七八糟的某个地方我配置了错误的地址。无论我在哪里看到 RM 的地址,我都会把它放在 10.38.41.134 上,就像我的情况一样。哪个 .xml 文件管理作业的设置?
  • 您似乎在 yarn-site.xml 中缺少条目 yarn.resourcemanager.scheduler.address(默认使用端口 8030)。另外我相信 mapreduce.jobtracker.address 是用于旧版本的 MR - 请改用 yarn.resourcemanager.resource-tracker.address
  • 现在说可能还为时过早,但我仍然爱你。工作奇迹般地失败了,但它失败了,它没有卡住,从头到尾,这是我一生中最快乐的失败。我已经检查 .xmls 一个星期了。在家工作,加班加点......现在这些碎片开始融合在一起,所有的confs和守护进程。 谢谢!
猜你喜欢
  • 2014-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多