我将Scala / Spark jar上传到HDFS以在我们的集群上测试它们。运行后,我经常意识到需要做出改变。所以我在本地进行更改,然后将新jar重新推送到HDFS。然而,经常(并非总是)当我这样做时,hadoop抛出一个错误,基本上说这个罐子和旧罐子(duh)不一样。
我尝试清除我的Trash,.staging和.sparkstaging目录,但这并没有做任何事情。我尝试重命名罐子,这有时候会起作用,有时候它会赢得(它起初仍然很荒谬)。
有谁知道为什么会发生这种情况以及如何防止它发生?谢谢你的帮助。如果有帮助(编辑出一些路径),这里有一些日志:
由于AM,应用程序application_1475165877428_124781失败了2次 appattempt_1475165877428_124781_000002的容器已退出 exitCode:-1000要获得更详细的输出,请检查应用程序跟踪 页面:http://examplelogsite/然后,单击每个日志的链接 尝试。诊断:在src上更改了资源MYJARPATH / EXAMPLE.jar filesystem(预计1475433291946,原文如下:1475433292850 java.io.IOException:在src上更改了资源MYJARPATH / EXAMPLE.jar filesystem(预计1475433291946,原来是1475433292850) org.apache.hadoop.yarn.util.FSDownload.copy(FSDownload.java:253)at at org.apache.hadoop.yarn.util.FSDownload.access $ 000(FSDownload.java:61) 在org.apache.hadoop.yarn.util.FSDownload $ 2.run(FSDownload.java:359) 在org.apache.hadoop.yarn.util.FSDownload $ 2.run(FSDownload.java:357) 在java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:422)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1693) 在org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:356)at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:60)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745)失败此尝试。失败 申请。
答案 0 :(得分:0)
之前我还没有看到退出代码,所以对于我,它没有说什么,我建议你查看日志,如下:
yarn logs -applicationId <your_application_ID>
答案 1 :(得分:0)
根据您的日志,我确定它来自yarn
端。
您可以自行修改yarn
来跳过此异常,这是解决方法。
我遇到了导致错误日志changed on src filesystem
的线程,我遇到了这个问题,并通过修改yarn src代码跳过了它。
有关更多详细信息,您可以参考how-to-fix-resource-changed-on-src-filesystem-issue