spark作业失败,因为hdfs正在缓存jar

ehxuflar  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(337)

我将scala/spark jar上传到hdfs以在集群上测试它们。在运行之后,我经常意识到需要进行一些更改。因此,我在本地进行更改,然后将新jar推回到hdfs。然而,当我这样做的时候,hadoop经常抛出一个错误,本质上说这个jar和旧jar不一样(duh)。
我尝试清除垃圾、.staging和.sparkstaging目录,但那没用。我试着重新命名jar,它有时会工作,有时不会(这仍然是荒谬的,我必须这样做在第一位)。
有人知道为什么会发生这种情况吗?我怎样才能阻止它发生?谢谢你的帮助。以下是一些日志(编辑了一些路径):
应用程序\u 1475165877428 \u 124781失败2次,原因是appattempt的am容器\u 1475165877428 \u 124781 \u 000002退出,退出代码为:-1000有关更详细的输出,请检查应用程序跟踪page:http://examplelogsite/然后,单击指向每次尝试的日志的链接。诊断:src文件系统上的资源myjarpath/example.jar已更改(应为1475433291946,为1475433292850 java.io.ioexception:src文件系统上的资源myjarpath/example.jar已更改(应为1475433291946,位于org.apache.hadoop.yarn.util.fsdownload.copy(fsdownload)的1475433292850。java:253)访问org.apache.hadoop.yarn.util.fsdownload.access$000(fsdownload.com)。java:61)在org.apache.hadoop.yarn.util.fsdownload$2.run(fsdownload。java:359)在org.apache.hadoop.yarn.util.fsdownload$2.run(fsdownload。java:357)在javax.security.auth.subject.doas(主题)中的java.security.accesscontroller.doprivileged(本机方法)。java:422)在org.apache.hadoop.security.usergroupinformation.doas(usergroupinformation。java:1693)在org.apache.hadoop.yarn.util.fsdownload.call(fsdownload。java:356)在org.apache.hadoop.yarn.util.fsdownload.call(fsdownload。java:60)在java.util.concurrent.futuretask.run(futuretask。java:266)在java.util.concurrent.executors$runnableadapter.call(executors。java:511)在java.util.concurrent.futuretask.run(futuretask。java:266)位于java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor。java:1142)在java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor。java:617)在java.lang.thread.run(线程。java:745)这次尝试失败了。应用程序失败。

gcmastyq

gcmastyq1#

根据你的日志,我肯定它来自 yarn 侧面。
您可以修改 yarn 您可以跳过此异常作为解决方法。
我在错误日志中遇到了这个线程 changed on src filesystem ,我遇到了这个问题,并通过修改yarn src代码跳过了它。
有关更多详细信息,请参阅如何修复src文件系统问题上更改的资源

axkjgtzd

axkjgtzd2#

我以前没有看到退出代码,所以对我来说,它没有说明什么,我建议你检查日志,如下所示:

yarn logs -applicationId <your_application_ID>

相关问题