【问题标题】:Using NiFi for scheduling Hadoop batch processes使用 NiFi 调度 Hadoop 批处理
【发布时间】:2017-04-17 11:12:48
【问题描述】:

根据NiFi's homepage,它“支持数据路由、转换和系统中介逻辑的强大且可扩展的有向图”。

过去几个月我一直在使用 NiFi,不禁想知道为什么不将它也用于调度批处理。

假设我有一个用例,其中数据流入 Hadoop,由一系列 Hive\MapReduce 作业处理,然后导出到某个外部 NoSql 数据库以供某个系统使用。 p>

使用 NiFi 将数据摄取并流入 Hadoop 是 NiFi 的一个用例。
但是,使用 Nifi 来安排 Hadoop 上的作业(“Oozie-like”)是我没有遇到其他实现的用例,并且由于它似乎完全可以实现,我试图了解是否有原因不要这样做。

在 NiFi 上完成这一切的好处是,人们将在一个地方获得从源到目的地的整个数据过程的可视化表示。在复杂流程的情况下,维护非常重要。

换句话说 - 我的问题是:是否有理由不使用 NiFi 作为批处理的调度程序\协调器?如果是这样 - 在这样的用例中可能会出现什么问题?


PS - 我读过这个:“Is Nifi having batch processing?” - 但我的问题是针对“NiFi 中的批处理”的不同意义,而不是附加问题中提出的问题

【问题讨论】:

    标签: hadoop batch-processing oozie apache-nifi


    【解决方案1】:

    您是正确的,如果流程画布上存在计划触发器,您将获得流程中所有步骤的简明视觉表示,但 NiFi 并非设计为调度程序/协调器。 Here is a comparison of some scheduler options

    使用 NiFi 控制调度感觉就像是在寻找问题的“锤子”解决方案。它将减少以编程方式定义这些计划或从外部工具与它们交互的难易程度。从理论上讲,您可以定义调度格式,将它们从文件、数据源、端点等读入 NiFi,并使用ExecuteStreamCommandExecuteScriptInvokeHTTP 处理器来启动批处理。然而,这感觉就像引入了一个不必要的中间步骤。如果您要进行整合和可视化,您可以让监控流程段从其本机格式(Oozie、XML 等)中提取这些计划定义,并在 NiFi 中显示它们,而不需要让 NiFi 负责定义和执行计划。

    【讨论】:

    • 感谢您的回答。我将尝试澄清我的问题:我知道 NiFi 的优势(以及数据应该通过 NiFi 流动以获得它们的事实),并打算在相关时使用它们。但是,在许多用例中,我想运行批处理并想知道我会错过什么\如果我这样做,我会在哪里失败。
    猜你喜欢
    • 1970-01-01
    • 2019-09-18
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多