2

我有一个由 oozie 协调员安排的 mapreduce 作业,每 4 小时运行一次。这个 mapreduce 作业有一个参数,比如说 k,它的值是在 job.config 文件中设置的。我想知道我是否在两次运行之间更改了此参数的值,它是选择更新的(新)值还是坚持原始(旧)值?

4

2 回答 2

0

如果作业处于运行模式,它将坚持自己的旧参数,如果作业正在等待调度运行,那么它将采用最新值:)。

于 2015-08-04T10:40:01.560 回答
0

实际上,有一种在运行时“动态”获取参数值的迂回方法:

  1. 在工作流程的开头插入一个虚拟 Shell 操作,并 设置<capture-output/>选项
  2. 在 shell 脚本中,只需从 HDFS 下载一个属性文件并将其转储到STDOUT
  3. “capture-output”选项告诉 Oozie 将STDOUT解析为 Map(即键/值列表)
  4. 然后使用 EL 函数在接下来的操作中检索适当的值

${wf:actionData("DummyShellAction")["some.key"]}

http://oozie.apache.org/docs/4.0.0/WorkflowFunctionalSpec.html#a4.2.6_Hadoop_Jobs_EL_Function

于 2015-08-05T21:07:16.610 回答