我正在尝试在lib路径下放置一个更新的jar并删除旧jar。不幸的是,我看到oozie控制台中的旧日志存在于旧罐子中。出于保密目的,我无法在此显示日志。但我正在做以下步骤:
替换workkflow.xml中提到的lib文件夹下的jar(mycode.jar)
使用oozie job -oozie http://host -config job.properties -run
当我在控制台中看到日志时,即使更换了jar,我也可以看到旧jar(较旧版本的mycode.jar)日志。
答案 0 :(得分:1)
如果您正在讨论oozie工作流应用程序中的lib
目录,那么您无需执行任何操作。下一次执行工作流程将自动选择新的(更新的)jar。
要将jar更新为共享库/user/oozie/share/lib/lib_*/*
,则在更换jar后,需要执行以下命令将共享库更新为oozie服务器。
oozie admin -sharelibupdate
希望这会有所帮助。感谢。
答案 1 :(得分:0)
为确保问题相同,我将叙述一下所面临的问题:
创建了一个MapReduce JAR并将其放置在lib文件夹中。
Ran oozie(MapReduce操作)工作并按预期选择了JAR,并运行良好。
我在代码(JAR)中进行了一些功能更改,因此添加了新的日志语句以确保选择了新的JAR。构建了JAR,并用lib文件夹(hdfs)中的新建JAR替换了旧的JAR
再次执行oozie作业,由于未显示新的日志语句,因此执行了旧JAR中的代码。
经过几次搜索,我发现了以下提示:
简短说明: 要使用具有相同名称的不同版本的jar文件,请清除所有NodeManager主机上的缓存,以防止应用程序使用旧的jar
a. Find out the cache location by checking the value of the yarn.nodemanager.local-dirs property
< property >
< name >yarn.nodemanager.local-dirs< /name>
< value>/hadoop/yarn/local</value>
< /property>
b。删除位于yarn.nodemanager.local-dirs中指定的文件夹内的filecache和usercache文件夹。
[yarn@node2 ~]$ cd /hadoop/yarn/local/
[yarn@node2 local]$ ls filecache nmPrivate spark_shuffle usercache
[yarn@node2 local]$ rm -rf filecache/ usercache/
c。重新启动YARN服务。
我无法清除缓存,因为我没有必要的访问权限。因此,我遵循以下解决方法
选项2对于许多人来说可能并不可行,并且关于oozie为什么不选择New JAR / Class的问题仍然悬而未决。