我们目前正在群集中运行大量Oozie作业。
其中许多工作都使用模板并具有子工作流程。
这些工作并不总是包含大而重的工作,它们大多包含一个小的shell脚本。
Hue作业浏览器显示了很多Oozie步骤。
我们现在有时会觉得我们的集群因这些工作而过载。这让我很奇怪,这些Oozie工作中的每一个都有一个指定的纱线容器吗?
如果是这样,这意味着,对于2分钟的工作,我们实际上使用的资源是所需资源的2-10倍。
答案 0 :(得分:1)
亲自看看......
oozie job -info <wkf/sub-wkf exec id>
指的是YARN职位 oozie.launcher.
例如,您可以在that post中获取更多详细信息。
<小时/> Shell或Java操作的一个常见问题是“启动器”YARN作业使用Hadoop管理员定义的默认作业设置 - 例如AppMaster为1 GB RAM,“启动器”为1.5 GB 但通常你的shell只需要几MB的RAM (在Oozie使用的东西之上,在原始的YARN容器中引导Action),它的AppMaster只需要最低限度来控制执行 - 比方说,每个512 MB。
所以你可以通过设置一些未记录的属性来减少Oozie操作的占用空间 - 在实践中,标准的Hadoop道具前缀为oozie.launcher.mapreduce.map.java.opts
>
例如,请参阅this post,然后that post。
PS:int yearToEncode = 2012 + ((year - 2012) % MyEnum.values().length);
与Java操作(或Pig操作,Sqoop操作等)相关,并且应与全局RAM配额保持一致;但它与Shell动作无关[除非你设置一个非常愚蠢的值,在这种情况下它可能会影响Oozie引导过程]
答案 1 :(得分:0)
在您的情况下是,如果您通过shell调用MR,则所有作业都将获得容器。对于每个容器而言, YARN 不会提供不必要的内存或资源。
纱线提供精确或更多的资源,但如果工作需要更多,它会增加。