【问题标题】:How to expose Hadoop job and workflow metadata using Hive如何使用 Hive 公开 Hadoop 作业和工作流元数据
【发布时间】:2017-02-20 16:55:20
【问题描述】:

我想做的是让工作流和作业元数据(例如开始日期、结束日期和状态)在配置单元表中可用,以供 BI 工具使用以实现可视化。例如,我希望能够监控某个工作流程是否在某些时间失败、成功率……

为此,我需要访问 Hue 能够在工作浏览器和 Oozie 仪表板中显示的相同数据。例如,我专门为工作流寻找的是名称、提交者、状态、开始和结束时间。我想要这个的原因是,在我看来,这个工具缺乏总体概述和良好的搜索。 这个想法是,一旦我找到这些数据,我将直接 - 或通过一些处理步骤 - 将其加载到 Hive 中。

我希望看到回答的问题:

  1. 这些数据是存储在 HDFS 中还是分散在本地数据节点中?
  2. 如果它存储在 HDFS 中。我在哪里可以找到它?如果存储在本地数据节点中,Hue 是如何找到并显示的?
  3. 假设我可以访问数据。我希望这些数据采用什么格式。这是存储在一般日志文件中还是我可以期待一些结构化的数据?

我正在使用 CDH 5.8

【问题讨论】:

    标签: hadoop cloudera oozie


    【解决方案1】:

    如果作业是通过 Oozie 以外的其他方式提交的,我的方法将无济于事。

    我们已经通过 Oozie Java API 从 oozie 服务器收集了所有日志,并迭代了 coordinator 信息以获得所需的信息。

    你需要思考,你需要检索什么样的信息。

    1. 如果您通过 Bundle 提交了所有作业,则从 bundle 到协调器,然后到工作流以查找信息。
    2. 如果您想获取所有协调器信息,只需调用带有协调器编号的 api 并获取所需信息。

    然后我们将获取的结果加载到配置单元表中,在那里可以过滤失败或超时协调器和各种其他参数的结果。

    您可以开始查看 Oozie 网站给出的示例:- https://oozie.apache.org/docs/3.2.0-incubating/DG_Examples.html#Java_API_Example]

    【讨论】:

      【解决方案2】:

      如果您想跟踪安排在 oozie 中的作业的状态,您应该使用 oozie RESTful APIJavaAPI。我没有使用 Hue 版本进行 Oozie 操作,但我想它仍然在幕后使用 rest api。它为您提供所有必要的信息,您可以创建一些服务来使用这些数据并将其推送到 Hive 表中。

      另一个选项是访问 Oozie 数据库。正如您可能知道的那样,Oozie 将有关计划作业的所有数据保存在 MqSql 或 Postgres 等一些 RDBMS 中。您可以通过一些 JDBC 连接器使用此信息。一个有趣的方法实际上是尝试通过JDBCStorageHandler 将这些信息作为一组外部表直接链接到 Hive 中。不确定它是否有效,但值得一试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-07
        • 1970-01-01
        • 2018-01-12
        • 2012-10-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多