hadoop文件在amazon emr中不存在,即使它尝试上载它

rsaldnfx  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(347)

我使用amazon emr创建了一个 emr-4.0.0 cluster :
但是,每当我尝试在其上提交spark应用程序时,它都会失败并出现以下错误: File does not exist: hdfs://ip-xx-xx--xx.ec2.internal:8020/user/hadoop/.sparkStaging/application_1441035668468_0001/spark-assembly-1.4.1-hadoop2.6.0-amzn-0.jar 即使在日志的前面,它上载了完全相同的文件,但没有发出任何错误消息: 2015-08-31 15:43:29,070 INFO [main] yarn.Client (Logging.scala:logInfo(59)) - Uploading resource file:/usr/lib/spark/lib/spark-assembly-1.4.1-hadoop2.6.0-amzn-0.jar -> hdfs://ip-xx-xx--xx.ec2.internal:8020/user/hadoop/.sparkStaging/application_1441035668468_0001/spark-assembly-1.4.1-hadoop2.6.0-amzn-0.jar (我已经验证了源文件确实存在于主机上的/usr/lib/spark/lib/spark-assembly-1.4.1-hadoop2.6.0-amzn-0.jar)。
我使用的命令是:

spark-submit --deploy-mode cluster --master yarn-cluster --class com.sundaysky.ads.spark.cluster.TrackingLogsAnalysis /tmp/oz/AdsTests-1.0-SNAPSHOT.jar

顺便说一句,我注意到这个 Java 1.7 (尽管这是亚马逊最新的电子病历版本),但我不认为这有什么关系。
你有什么想法可能是问题,或者,如何调试问题?我尝试过多种方法向spark submit命令添加参数,以从yarn客户端获取跟踪级别的消息,但都没有成功。
谢谢,Oozie

gijlo24d

gijlo24d1#

因此,在与亚马逊支持人员交谈之后,万一有人遇到类似的问题:
我的例子中的具体问题是,我的逻辑jar(不是由amazon提供的spark-assembly-1.4.1-hadoop2.6.0-amzn-0.jar)是用java8编译的,而机器只支持java7。
这没有反映在步骤的错误日志中,而是反映在步骤容器的stderr日志中,其中出现了以下消息:

15/08/31 15:43:41 INFO yarn.ApplicationMaster: Starting the user application in a separate Thread Exception in thread "main" java.lang.UnsupportedClassVersionError:     com/xxxxxx/xxxx/xxxxx/xxxxx/MyClass : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

如果遇到类似问题,并且步骤的日志文件没有提供答案,则还应查看容器的日志:
转到亚马逊的电子病历网页。
单击集群以打开集群详细信息屏幕
在“loguri”附近应该有一个文件夹图标,点击它打开日志
转到“容器”并继续往下看与任务匹配的容器
检查stderr.gz和stdout.gz是否存在问题
嗯,Oozie

相关问题