大数据编排框架似乎是最常见的业务流程框架
编排框架通常被忽略,许多公司最终为其管道实施定制解决方案。 这不仅成本高昂,而且效率低下,因为自定义业务流程解决方案往往会面临现成框架已经解决的相同问题。 造成漫长的反复试验。 在本文中,我将介绍一些最常见的开源业务流程框架。 管道编排 数据管道编排是一个交叉过程,可管理管道任务之间的依赖关系,调度作业等。 如果使用流处理,则需要编排每个流应用程序的依赖关系,而对于批处理,则需要安排和编排作业。 请记住,任务和应用程序可能会失败,因此您需要一种以统一的方式调度,重新调度,重放,监视,重试和调试整个数据管道的方法。 业务流程框架提供的一些功能是: 作业调度 依赖管理 错误管理和重试 工作参数化 SLA跟踪,警报和通知 具有仪表板的用户界面,例如甘特图和图形 历史和审计 元数据的数据存储 日志汇总 让我们回顾一下一些选项… Apache Oozie Apache Oozie是Hadoop的调度程序,作业创建为DAG,并且可以由基于cron的调度或数据可用性触发。 Oozie是作为Java Web应用程序运行的可伸缩,可靠和可扩展的系统。 它与Sqoop等提取工具和Spark等处理框架集成在一起。 Oozie工作流程定义以hPDL(XML)编写。 工作流包含控制流节点和动作节点。 控制流节点定义工作流的开始和结束(开始,结束和失败节点),并提供一种机制来控制工作流的执行路径(决策,派生和联接节点)[1]。 动作节点是一种机制,工作流通过该机制触发任务的执行。 Oozie支持不同类型的操作(map-reduce,Pig,SSH,HTTP,电子邮件…),并且可以扩展以支持其他类型的操作[1]。 同样,可以对工作流程进行参数设置,并且可以同时执行几个相同的工作流程作业。 它是Hadoop的第一个调度程序,非常流行,但是已经有点过时了,如果您完全依赖Hadoop平台,它仍然是一个不错的选择。 Apache Airflow Airflow是一个平台,可用于计划,运行和监视工作流程。 由于其易用性和创新的工作流作为代码方法,它已成为大数据管道的最著名协调者,其中DAG在Python代码中定义,可以像其他任何可交付的软件一样进行测试。 它使用DAG创建复杂的工作流程。 图中的每个节点都是一个任务,边定义了任务之间的依赖关系。 任务分为两类: 操作员:执行一些操作。 传感器:检查过程或数据结构的状态。 Airflow Scheduler在遵循您描述的指定依赖项的同时,在一组工作线程上执行您的任务。 它具有模块化架构,并使用消息队列来协调任意数量的工作程序,并且可以扩展到无穷大[2]。 它为您生成DAG,从而最大程度地提高了并行度。 DAG是用Python编写的,因此您可以在本地运行它们,对其进行单元测试并将其与开发工作流程集成。 当工作流定义为代码时,它们变得更加可维护,可版本控制,可测试和协作[2]。 丰富的用户界面可以轻松地可视化生产中运行的管道,监视进度并在需要时对问题进行故障排除[2]。 它快速,易于使用且非常有用。 它具有多种视图和多种方法来解决问题。 它保留了运行的历史记录,以供以后参考。 (编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |