我已经找了两天了。
首先,我是整个hadoop/yarn/hdfs主题的新手,想要配置一个小集群。
在每次运行mapreduce-examples.jar中的示例时,上面的消息都不会出现teragen有时有效,有时无效。在某些情况下,整个作业失败,在其他情况下,作业成功完成。有时作业失败,没有打印上面的消息。14/06/08 15:42:46 INFO ipc.Client: Retrying connect to server: FQDN-HOSTNAME/XXX.XX.XX.XXX:53022. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=3, sleepTime=1000 MILLISECONDS)
此消息打印30次。此外,每次启动作业时,端口(在代码示例中:53022)都会发生变化。如果作业成功完成,打印
14/06/08 15:34:20 INFO mapred.ClientServiceDelegate: Application state is completed. FinalApplicationStatus=SUCCEEDED. Redirecting to job history server
14/06/08 15:34:20 INFO mapreduce.Job: Job job_1402234146062_0002 running in uber mode : false
14/06/08 15:34:20 INFO mapreduce.Job: map 100% reduce 100%
14/06/08 15:34:20 INFO mapreduce.Job: Job job_1402234146062_0002 completed successfully
如果失败,则显示如下。
INFO mapreduce.Job: Job job_1402234146062_0005 failed with state FAILED due to: Task failed task_1402234146062_0005_m_000002
Job failed as tasks failed. failedMaps:1 failedReduces:0
在这种情况下,一些任务失败。但是在nodemanager, datanode, resourcemanager,…
INFO mapreduce.Job: Task Id : attempt_1402234146062_0006_m_000002_1, Status : FAILED
关于我的配置的其他信息:使用的操作系统:centOS 6.5Java版本:OpenJDK Runtime Environment (rhel-2.4.7.1)。el6_5-x86_64 u55-b13)OpenJDK 64位Server VM (build 24.51-b03, mixed mode)
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.address</name>
<value>FQDN-HOSTNAME:8050</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.localizer.address</name>
<value>FQDN-HOSTNAME:8040</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>FQDN-HOSTNAME:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>FQDN-HOSTNAME:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>FQDN-HOSTNAME:8032</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions </name>
<value>false </value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///var/data/hadoop/hdfs/nn</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:///var/data/hadoop/hdfs/snn</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:///var/data/hadoop/hdfs/snn</value>
<name>fs.checkpoint.edits.dir</name>
<value>file:///var/data/hadoop/hdfs/snn</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///var/data/hadoop/hdfs/dn</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.cluster.temp.dir</name>
<value>/mapred/tempDir</value>
</property>
<property>
<name>mapreduce.cluster.local.dir</name>
<value>/mapred/localDir</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>FQDN-HOSTNAME:10020</value>
</property>
</configuration>
我希望有人能帮助我。:)谢谢你!诺曼 作业有时会成功完成,因为当您有一个reducer并且该reduce任务偶然被发送到working
节点管理器时,它成为成功的作业。
您必须确保FQDN-HOSTNAME
在slaves
文件中以完全相同的方式写入。如果我没记错的话,我的解决方案是我删除了/etc/hosts
中主机名映射的条目,即像这样注释它:
#127.0.0.1 FQDN-HOSTNAME
这是MR AppMaster如何使用临时端口启动的错误。它也存在于Hadoop 2.6.0版本中。
我已经找到了这个bug的修复方法,并在MAPREDUCE项目上创建了一个JIRA,并附上了如何修复它的注释。
另一个可能的解决方案是检查所有节点中的防火墙。如果您正在处理iptables,可以在每个节点上运行此命令:
# /etc/init.d/iptables save
# /etc/init.d/iptables stop
这将停止防火墙,直到下次重新启动,但它应该足以让您测试集群。你不需要重新启动yarn或任何东西,只需要再次运行作业。
如果你想完全停止FW:
# chkconfig iptables off
这肯定是一个bug,这篇文章提供了一个更清晰的洞察力。https://groups.google.com/a/cloudera.org/forum/!味精/cdh-user/P1rfMQmYVWk/eARZXHUTkW0J
我们计划通过减少临时端口范围来解决这个问题,从而限制捕获的端口,然后配置iptables以允许该端口范围。这里解释了端口范围的设置http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html
如果你看到这样的消息
INFO ipc.Client: Retrying connect to server: <hostname>/<ip>:<port>. Already tried 1 time(s); maxRetries=3
需要检查:
- 检查客户端和节点管理器之间的防火墙
- 检查yarn.app.mapreduce.am.job.client。port-range默认范围是所有可能的端口
哇!这些答案是真的吗?谈到FQDN,当工作明确完成时……只要防火墙是禁用的??OP甚至还放了详细的日志消息/配置。
问题是yarn.app.mapreduce.am.job.client.port-range
没有被尊重。我也碰到了。
防火墙关闭……一切都很好(我可以看到纱线工作的短暂端口)。
防火墙……所有超时(最终)。
Horton完全忽略了这个问题。
下面是一个作业的日志输出,它演示了这个问题。在第一种情况下,我根据Horton的文档在客户机上启用了防火墙(以及我通过仔细查看我的安装发现的其他端口)。您将看到进程超时…然后突然开始工作了。因为我在看到作业输出后禁用了防火墙:)
2015-01-15 16:48:22,943 INFO [main] org.apache.hadoop.ipc.Client: Retrying connect to server: de-luster-l2723nraqsy5-ywhniidze3lb-qfk4asn77vc5/10.0.0.41:52015. Already tried 39 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=50, sleepTime=1000 MILLISECONDS)
2015-01-15 16:48:23,349 INFO [main] org.apache.hadoop.mapred.YarnChild: mapreduce.cluster.local.dir for child: /hadoop/yarn/local/usercache/l.admin/appcache/application_1420482341308_0020
2015-01-15 16:48:24,122 INFO [main] org.apache.hadoop.conf.Configuration.deprecation: session.id is deprecated. Instead, use dfs.metrics.session-id
2015-01-15 16:48:24,656 INFO [main] org.apache.hadoop.mapred.Task: Using ResourceCalculatorProcessTree : [ ]
2015-01-15 16:48:24,724 INFO [main] org.apache.hadoop.mapred.ReduceTask: Using ShuffleConsumerPlugin: org.apache.hadoop.mapreduce.task.reduce.Shuffle@7f94ee59
2015-01-15 16:48:24,792 INFO [main] org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl: MergerManager: memoryLimit=534354336, maxSingleShuffleLimit=133588584, mergeThreshold=352673888, ioSortFactor=100, memToMemMergeOutputsThreshold=100
你看到了吗?超时的问题…然后突然开始洗牌。与fqdn无关:)