我已经安装了一个hadoop2.3.0的2节点集群。工作正常,我可以成功运行distributedshell-2.2.0.jar示例。但当我尝试运行任何mapreduce作业时,我都会出错。我已经安装了mapred.xml和其他配置,以便根据(http://www.alexjf.net/blog/distributed-systems/hadoop-yarn-installation-definitive-guide)但我得到了以下错误:
14/03/22 20:31:17 INFO mapreduce.Job: Job job_1395502230567_0001 failed with state FAILED due to: Application application_1395502230567_0001 failed 2 times due to AM Container for appattempt_1395502230567_0001_000002 exited
with exitCode: 1 due to: Exception from container-launch: org.apache.hadoop.util.Shell$ExitCodeException:
org.apache.hadoop.util.Shell$ExitCodeException:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:505)
at org.apache.hadoop.util.Shell.run(Shell.java:418)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:195)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:283)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:79)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Container exited with a non-zero exit code 1
.Failing this attempt.. Failing the application.
14/03/22 20:31:17 INFO mapreduce.Job: Counters: 0
Job ended: Sat Mar 22 20:31:17 PKT 2014
The job took 6 seconds.
如果看一下stderr(作业日志),只有一行 "Could not find or load main class 614"
现在我已经在google上搜索过了,通常当您有不同的java版本或不同的应用程序时,就会出现这个问题 yarn-site.xml
类路径设置不正确,我的 yarn-site.xml
有这个吗
<property>
<name>yarn.application.classpath</name>
<value>/opt/yarn/hadoop-2.3.0/etc/hadoop,/opt/yarn/hadoop-2.3.0/*,/opt/yarn/hadoop-2.3.0/lib/*,/opt/yarn/hadoop-2.3.0/*,/opt/yarn/hadoop-2.3.0/lib/*,/opt/yarn/hadoop-2.3.0/*,/opt/yarn/hadoop-2.3.0/lib/*,/opt/yarn/hadoop-2.3.0/*,/opt/yarn/hadoop-2.3.0/lib/*</value>
</property>
还有什么其他的想法吗?这里的问题是什么?
我的mapreduce工作如下:
$HADOOP_PREFIX/bin/hadoop jar $HADOOP_PREFIX/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar randomwriter out
11条答案
按热度按时间rta7y2nd1#
检查系统中的交换大小:
free -m
如果有Swap: 0 0 0
按照以下说明分配交换内存hs1rzwqc2#
在我的情况下,问题是由于内存不足。正如adino在上面的评论中所建议的那样,我将以下内容插入到了yarn站点xml中:
在那之后,我可以在stderr日志文件中看到一个错误。我不记得确切的措辞(日志文件被删除后一段时间)。是“内存不足错误”
我编辑了我的虚拟机,添加了另一个大小为3g的交换分区(可能是完全过量)。我是用gparted做的。
之后,我必须通过键入
我通过键入“blkid”并复制uid找到了新交换分区的uid。
我将交换注册到文件fstab中:
我为新的交换分区添加了新行。我从上一个交换分区复制了整行内容,只是修改了uid。
在此之后,错误消失了。我相信有更优雅的方法来解决这个问题,但这对我很有效。我对linux还很陌生。
puruo6ea3#
也许你可以在$hadoop\u home/bin下用下面的代码运行historyserver,
然后您可以从这个url控制hadoop错误的日志,(history log)
最有可能的是你得到了类未发现的异常
mctunoxg4#
请检查一下酒店。确保所有必需的jar都存在。
类路径/etc/hadoop/conf,/usr/lib/hadoop/,/usr/lib/hadoop/lib/,/usr/lib/hadoop hdfs/,/usr/lib/hadoop hdfs/lib/,/usr/lib/hadoop yarn/,/usr/lib/hadoop yarn/lib/,/usr/lib/hadoop mapreduce/,/usr/lib/hadoop mapreduce/lib/
gijlo24d5#
我用以下方法解决了这个问题:
因为在我的hadoop/etc/hadoop[hadoop-2.7.3配置目录]:about mapred-site.xml中:
在这个文件中。“zhangjunj”一定是你主人的机器名,但我一开始就写了“hadoop”。
alen0pnh6#
权限应为6050owner:root group hadoop软件
---sr-s---1根hadoop/usr/lib/hadoop-yarn/bin/container执行器
myss37ts7#
我在ambari2.0+hdp2.3+hue3.9上也遇到了这个问题,我的修复经验是:1。确保所有hadoop节点2上都存在spark客户端。导出所有Yarn节点(spark客户端)和主机上的spark\u主页
t1qtbnec8#
我在尝试手动安装HortonWorksHDP2.1时遇到了同样的问题。我成功捕获了包含以下内容的容器启动程序脚本:
设定的线
CLASSPATH
是罪魁祸首。为了解决这个问题,我必须设置变量HADOOP_COMMON_HOME
,HADOOP_HDFS_HOME
,HADOOP_YARN_HOME
,和HADOOP_MAPRED_HOME
在hadoop-env.sh
指向下面的相应目录/usr/lib
. 在每个目录中,我还必须设置share/hadoop/...
可以找到jar的子目录层次结构。7nbnzgx99#
请先检查日志(它们将在hadoop的logs目录下的user目录中)。
还要检查您在yarn、hdfs、core site xml文件中提到的所有目录的权限。因为在大多数情况下,此错误是由错误的权限问题引起的。
j9per5c410#
您需要通过设置
yarn.nodemanager.delete.debug-delay-sec
到600。这将允许您浏览stderr、stdout和syslog-in
/hadoop/yarn/log
在相关的容器目录中。您很可能会在syslog中找到错误。而且,最有可能的是,这将是一个
ClassNotFoundException
对于类tez.history.logging.service.class=org.apache.tez.dag.history.logging.atsv15historyloggingservice。如果是这种情况,请参阅以下票据:
https://issues.apache.org/jira/browse/ambari-15041
igetnqfo11#
我修复了这个问题,它是由于不正确的路径。通过给mapred、hdfs、yarn和common提供完整的dir路径,解决了这个问题。
谢谢,托尼