hadoop - 导出 Oozie Web 控制台中列出的作业

标签 hadoop oozie

抱歉,如果这个问题听起来很基础,我是 Hadoop 环境的新手。

我在找什么?

在我的例子中,有计划每天运行的作业,我想每天在 Excel 工作表中导出失败的作业列表

如何查看工作流作业?

目前我使用 Oozie 网络控制台查看作业,但我没有/看不到导出选项。还, 我无法从 Oozie documentation 中找到此信息.

但是,我发现可以使用如下命令列出作业

$ oozie jobs -oozie http://localhost:8080/oozie -localtime -len 2 -fliter status=RUNNING

我卡在哪里了?

我想过滤给定日期的失败作业,想将其导出为 csv/excel 数据

最佳答案

@YoungHobbit 指向 that post 是正确的这与这个非常相似;当谈到使用 Oozie CLI(命令行界面)提取在特定日期运行的完整作业列表时,他的回答准确无误。
只是不要忘记指定一个“无限制”的回复,例如-len 999999999 以避免副作用(默认仅显示前 100 个匹配项,如果您运行很多频繁的作业,这可能太低了)。

诀窍是你可以做一个更复杂的过滤器,比如
“startCreatedTime=2016-06-28T00:00Z;endcreatedtime=2016-06-28T10:00Z;status=FAILED”
...但您不能请求失败的作业已被杀死已被暂停 (这可能是由于 YARN 或 HDFS 临时中断造成的)仍在可疑地运行(例如因为子工作流已暂停).
因此,您最好的选择是获取整个列表,然后使用普通的旧 grep 过滤掉所有成功的作业——如另一个答案中所建议的那样。

然后您还需要一个复杂的 sedawk 脚本来将丑陋的 CLI 输出分解为格式正确的 CSV。哎哟!


现在,您有了 Oozie CLI 的替代方案:Oozie REST API(旧 Cloudera 教程 here,Oozie V4.2 引用 here)让您可以使用 查询 Oozie 服务器提供...的任何编程语言

  • HTTP 客户端
  • 以及一种解析 JSON 消息的方法(如果没有其他可用的,则使用普通的旧正则表达式)

逻辑基本相同——获取所需时间窗口内所有作业的列表,忽略成功的作业,解析其他作业以生成 CSV 记录,转储到 CSV 文件中。
但是您的程序会更健壮,因为它将基于结构化 JSON 输入。

还有一件事:如果您熟悉 Microsoft VBA,您甚至可以使用 Excel 宏以自助方式动态构建报告。无需为中间 CSV 文件而烦恼。

关于hadoop - 导出 Oozie Web 控制台中列出的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38503520/

相关文章:

hadoop - Hadoop中的Oozie pig 工作流程2.2 pig 0.12.1 oozie 4.1.0

rest - OOZIE REST API RERUN - START 作业功能不起作用

hadoop - 全局变量 HADOOP_USER_NAME oozie?

hadoop - Hadoop任务能否在单节点上并行运行

hadoop - 学习Hadoop以进行系统管理员

hadoop - 为什么在mapreduce中按操作分组很昂贵?

hadoop - 通过 oozie 进行 Sqoop 作业

hadoop - KMeans处理分类变量

构建我的 Play 应用程序时未找到 Hadoop 版本

hadoop - 在本地模式下运行oozie会出错