Amazon web services AWS Glue:命令失败,错误代码为1

Amazon web services AWS Glue:命令失败,错误代码为1,amazon-web-services,aws-glue,Amazon Web Services,Aws Glue,我已经和这个错误斗争了好几个星期了。我尝试了许多不同的应用程序,但没有发现与此错误有任何一致性。有时,如果我更改作业书签设置,它将暂停、启用或恢复为禁用,它将开始工作。我有一个javajar,我正在引用这个glue作业,我正在从中调用一些方法。有时,如果我重建工件,作业开始工作,不再抛出此错误。我有另一份工作,它使用相同的罐子,而且从不抛出错误。我尝试过重新开始新的工作,但我看到了同样的问题。这里是它在日志中给出的错误堆栈。来自应用程序的代码是一个简单的数据帧,从S3读取并写入S3中的另一个位置

我已经和这个错误斗争了好几个星期了。我尝试了许多不同的应用程序,但没有发现与此错误有任何一致性。有时,如果我更改作业书签设置,它将暂停、启用或恢复为禁用,它将开始工作。我有一个javajar,我正在引用这个glue作业,我正在从中调用一些方法。有时,如果我重建工件,作业开始工作,不再抛出此错误。我有另一份工作,它使用相同的罐子,而且从不抛出错误。我尝试过重新开始新的工作,但我看到了同样的问题。这里是它在日志中给出的错误堆栈。来自应用程序的代码是一个简单的数据帧,从S3读取并写入S3中的另一个位置

val df = spark.read.parquet(source)

df.write.mode("overwrite").format("parquet").save(destination)
错误堆栈:

18/04/30 14:40:35 ERROR ApplicationMaster: User class threw exception: java.lang.NoSuchMethodError: com.amazonaws.services.glue.AWSGlue.getJobBookmark(Lcom/amazonaws/services/glue/model/GetJobBookmarkRequest;)Lcom/amazonaws/services/glue/model/GetJobBookmarkResult;
java.lang.NoSuchMethodError: com.amazonaws.services.glue.AWSGlue.getJobBookmark(Lcom/amazonaws/services/glue/model/GetJobBookmarkRequest;)Lcom/amazonaws/services/glue/model/GetJobBookmarkResult;
at com.amazonaws.services.glue.util.JobBookmarkServiceShim$$anonfun$2.apply(JobBookmarkUtils.scala:54)
at com.amazonaws.services.glue.util.JobBookmarkServiceShim$$anonfun$2.apply(JobBookmarkUtils.scala:54)
at scala.util.Try$.apply(Try.scala:192)
at com.amazonaws.services.glue.util.JobBookmarkServiceShim.<init>(JobBookmarkUtils.scala:54)
at com.amazonaws.services.glue.util.JobBookmark$.configure(JobBookmarkUtils.scala:178)
at com.amazonaws.services.glue.util.Job$.init(Job.scala:68)
at com.amazonaws.services.glue.util.Job$.init(Job.scala:32)
at NetezzaRawToRefined$.main(script_2018-04-30-14-39-54.scala:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.amazonaws.services.glue.util.GlueExceptionWrapper$$anonfun$1.apply$mcV$sp(GlueExceptionWrapper.scala:29)
at com.amazonaws.services.glue.util.GlueExceptionWrapper$$anonfun$1.apply(GlueExceptionWrapper.scala:29)
at com.amazonaws.services.glue.util.GlueExceptionWrapper$$anonfun$1.apply(GlueExceptionWrapper.scala:29)
at scala.util.Try$.apply(Try.scala:192)
at com.amazonaws.services.glue.util.GlueExceptionWrapper$.delayedEndpoint$com$amazonaws$services$glue$util$GlueExceptionWrapper$1(GlueExceptionWrapper.scala:28)
at com.amazonaws.services.glue.util.GlueExceptionWrapper$delayedInit$body.apply(GlueExceptionWrapper.scala:11)
at scala.Function0$
class.apply$mcV$sp(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:392)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
at scala.App$class.main(App.scala:76)
at com.amazonaws.services.glue.util.GlueExceptionWrapper$.main(GlueExceptionWrapper.scala:11)
at com.amazonaws.services.glue.util.GlueExceptionWrapper.main(GlueExceptionWrapper.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:635)
18/04/30 14:40:35 INFO ApplicationMaster: Final app status: FAILED, exitCode: 15, (reason: User class threw exception: java.lang.NoSuchMethodError: com.amazonaws.services.glue.AWSGlue.getJobBookmark(Lcom/amazonaws/services/glue/model/GetJobBookmarkRequest;)Lcom/amazonaws/services/glue/model/GetJobBookmarkResult;)
18/04/30 14:40:35错误应用程序管理员:用户类引发异常:java.lang.NoSuchMethodError:com.amazonaws.services.glue.AWSGlue.getJobBookmark(Lcom/amazonaws/services/glue/model/GetJobBookmarkRequest;)Lcom/amazonaws/services/glue/model/GetJobBookmarkResult;
java.lang.NoSuchMethodError:com.amazonaws.services.glue.AWSGlue.getJobBookmark(Lcom/amazonaws/services/glue/model/GetJobBookmarkRequest;)Lcom/amazonaws/services/glue/model/GetJobBookmarkResult;
在com.amazonaws.services.glue.util.JobBookmarkServiceShim$$anonfun$2.apply上(JobBookmarkUtils.scala:54)
在com.amazonaws.services.glue.util.JobBookmarkServiceShim$$anonfun$2.apply上(JobBookmarkUtils.scala:54)
在scala.util.Try$.apply(Try.scala:192)
在com.amazonaws.services.glue.util.JobBookmarkServiceShim.(JobBookmarkUtils.scala:54)
位于com.amazonaws.services.glue.util.JobBookmark$.configure(JobBookmarkUtils.scala:178)
位于com.amazonaws.services.glue.util.Job$.init(Job.scala:68)
位于com.amazonaws.services.glue.util.Job$.init(Job.scala:32)
在NetezzaRawToRefined$.main(脚本_2018-04-30-14-39-54.scala:16)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
在com.amazonaws.services.glue.util.GlueExceptionWrapper$$anonfun$1.apply$mcV$sp(GlueExceptionWrapper.scala:29)
在com.amazonaws.services.glue.util.GlueExceptionWrapper$$anonfun$1.apply上(GlueExceptionWrapper.scala:29)
在com.amazonaws.services.glue.util.GlueExceptionWrapper$$anonfun$1.apply上(GlueExceptionWrapper.scala:29)
在scala.util.Try$.apply(Try.scala:192)
在com.amazonaws.services.glue.util.GlueExceptionWrapper$.delayedEndpoint$com$amazonaws$services$glue$util$GlueExceptionWrapper$1(GlueExceptionWrapper.scala:28)
在com.amazonaws.services.glue.util.GlueExceptionWrapper$delayedInit$body.apply上(GlueExceptionWrapper.scala:11)
在scala.0上$
类。应用$mcV$sp(函数0.scala:34)
在scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)中
位于scala.App$$anonfun$main$1.apply(App.scala:76)
位于scala.App$$anonfun$main$1.apply(App.scala:76)
位于scala.collection.immutable.List.foreach(List.scala:392)
位于scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
位于scala.App$class.main(App.scala:76)
位于com.amazonaws.services.glue.util.GlueExceptionWrapper$.main(GlueExceptionWrapper.scala:11)
位于com.amazonaws.services.glue.util.GlueExceptionWrapper.main(GlueExceptionWrapper.scala)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.apache.spark.deploy.warn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:635)
18/04/30 14:40:35信息应用程序管理员:最终应用程序状态:失败,退出代码:15,(原因:用户类引发异常:java.lang.NoSuchMethodError:com.amazonaws.services.glue.AWSGlue.getJobBookmark(Lcom/amazonaws/services/glue/model/GetJobBookmarkRequest;)Lcom/amazonaws/services/glue/model/GetJobBookmarkResult;)
如果运行时的jar版本与打包版本不同,则通常会发生此错误。我建议您确保包装的是同一版本的jar


如果运行时的jar版本与打包版本不同,则通常会发生此错误。我建议您确保包装的是同一版本的罐子。

所以,我的研究也提到了这一点。但是,我有两个使用同一个jar的粘合作业,所以两个jar的版本都是相同的。其中一项工作有效,而另一项工作无效。我们也没有改变版本的选择。我不知道您是否会根据创建作业本身的时间使用不同的aws java sdk版本。我将测试并找出答案。谢谢。你说得对,这是因为包含了一个aws java sdk jar。在胶水中运行时,版本会有所不同。你把这个放在哪里?在剧本里?还是胶水的工作?所以,我的研究也提到了这一点。但是,我有两个使用同一个jar的粘合作业,所以两个jar的版本都是相同的。其中一项工作有效,而另一项工作无效。我们也没有改变版本的选择。我不知道您是否会根据创建作业本身的时间使用不同的aws java sdk版本。我将测试并找出答案。谢谢。你说得对,这是因为包含了一个aws java sdk jar。在胶水中运行时,版本会有所不同。你把这个放在哪里?在剧本里?还是胶水?
java.lang.NoSuchMethodError: com.amazonaws.services.glue.AWSGlue.getJobBookmark(Lcom/amazonaws/services/glue/model/GetJobBookmarkRequest;)Lcom/amazonaws/services/glue/model/GetJobBookmarkResult;