【问题标题】:Oozie/yarn: resource changed on src filesystemOozie/yarn:src 文件系统上的资源已更改
【发布时间】:2018-07-08 06:10:59
【问题描述】:

我有一个 Oozie 工作流程,其中一个步骤是 java 步骤,运行存储在本地文件系统上的 jar(该 jar 存在于所有节点上)。

最初,jar 是通过 RPM 安装的,因此它们都具有相同的时间戳。

在试验时,我在这个 jar 上手动复制了一个新版本,现在我收到了以下消息:

org.apache.oozie.action.ActionExecutorException: JA009: org.apache.hadoop.yarn.exceptions.YarnException: Failed to submit application_1516602562532_15451 to YARN : Application application_1516602562532_15451 failed 2 times due to AM Container for appattempt_1516602562532_15451_000002 exited with  exitCode: -1000
For more detailed output, check the application tracking page: http://ip-10-0-0-239.eu-west-1.compute.internal:8088/cluster/app/application_1516602562532_15451 Then click on links to logs of each attempt.
Diagnostics: java.io.IOException: Resource file:/opt/tst/tst.jar changed on src filesystem (expected 1516886392000, was 1516891496000
Failing this attempt. Failing the application.

主线是:

资源文件:/opt/tst/tst.jar 在 src 文件系统上更改(预期为 1516886392000,为 151689149600)。

这两个数字是时间戳,expected 一个确实是旧 jar 的 TS,在所有服务器上都相同,was TS 是其中一个数据节点上新 jar 的时间戳(因为它们是 @ 987654324@'ed循环,TS略有不同)。

我的问题是:如何让 yarn 停止抱怨并使用新的?

一些注意事项:

  • Hortonworks 2.6,基于 hadoop 2.7,
  • jar 仅由我放在本地 FS 上,不在 hdfs 中,
  • 与 spark 无关(我的问题在 google 上出现了很多与 spark 相关的问题),
  • yarn.sharedcache.enabledfalse(默认)所以 yarn scmadmin -runCleanerTask 在这里不相关,
  • 我可以通过重用旧 jar 来解决我当前的问题,并且我可以确保所有 DN 都具有相同的 TS,但我想知道如何才能使用新版本(注意 oozie 指向的 jar是一个符号链接,在发布新版本时不必更新 oozie),
  • 我宁愿将文件保存在本地 FS 上,而不必将其放在 hdfs 上,
  • jar 名称非常具体,不会与任何其他 jar 冲突,
  • 工作流以用户 yarn 身份运行,我在 hdfs 上的 yarn 用户目录中找不到我的 jar 的任何副本(也没有在 oozie 目录下),
  • 我可以在 yarn 本地目录 /filecache 下找到 jar 的副本,但它们的 md5 与我的任何(当前)版本都不匹配。

【问题讨论】:

  • 你有什么特别反对将 jar 放在 HDFS 上的?似乎比循环 SCP 作业的开销更少
  • @cricket_007 我们当前的部署管道使用 rpm,在所有服务器上安装 jar 对我来说基本上是免费的。必须更新它以将 jar 放入 hdfs 当然是可行的,但我宁愿不做额外的工作,我的待办事项列表已经足够大了。此外,我真的很想了解问题的核心。
  • @Guillaume 我遇到了同样的问题。最后你弄明白了吗?
  • @Poorkenny 总体规划最终只是“稍等一下”。在我的情况下,罐子很小并且不经常更新,所以务实地这对我们来说是最好的。抱歉,这可能不是您希望的答案。
  • @Guillaume 确实不是 ^^ 不过谢谢你的回答。

标签: hadoop hadoop-yarn oozie


【解决方案1】:

这是我的两分钱,您可以自己构建yarn相关的jar,并将其添加到您当前的工作环境中。

跳过这种“烦人”的条件检查可能是一种解决方法。

一般步骤如下:

1、获取你使用的yarn的源码。您可以从 Hadoop 官方网站下载它。 2、在Hadoop源码中搜索changed on file system之类的错误日志。 3、注释掉 4、Rebuild Yarn相关jar 5、把它放到你的工作环境中。

您可以参考How to fix resource changed on src filesystem issue了解更多详情。

【讨论】:

    【解决方案2】:

    我遇到了同样的错误,在我的情况下是输出文件夹。 (在 src 文件系统上更改了资源路径/到/输出/文件夹(预期为 1583243472154,为 1583243577395))在 Oozie 工作流中运行 Pig 脚本时。

    删除 .staging 文件夹解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 2011-03-19
      • 2013-06-15
      相关资源
      最近更新 更多