• Hadoop工作流引擎之Azkaban与Oozie对比(四)


    Azkaban是什么?(一)

    Azkaban的功能特点(二)

    Azkaban的架构(三)

      不多说,直接上干货!

    http://www.cnblogs.com/zlslch/category/938837.html

      目前,市面上最流行的两种Hadoop工作流引擎调度器Azkaban与Oozie。

    具体,可以进一步看我的博客。

      Azkaban概念学习系列http://www.cnblogs.com/zlslch/category/938837.html

      和Oozie概念学习系列http://www.cnblogs.com/zlslch/category/916607.html

      下面的表格对上述2种hadoop工作流调度器的关键特性进行了比较,尽管这些工作流调度器能够解决的需求场景基本一致,但在设计理念,目标用户,应用场景等方面还是存在区别。

    特性

    Oozie

    Azkaban

    工作流描述语言

    XML (xPDL based)

    text file with key/value pairs

    依赖机制

    explicit

    explicit

    是否要web容器

    Yes

    Yes

    进度跟踪

    web page

    web page

    Hadoop job调度支持

    yes

    yes

    运行模式

    daemon

    daemon

    Pig支持

    yes

    yes

    事件通知

    no

    no

    需要安装

    yes

    yes

    支持的hadoop版本

    0.20+

    currently unknown

    重试支持

    workflownode evel

    yes

    运行任意命令

    yes

    yes

    Amazon EMR支持

    no

    currently unknown

    Azkaban与Oozie对比

      对市面上最流行的两种调度器,给出以下详细对比。知名度比较高的应该是Apache Oozie,但是其配置工作流的过程是编写大量的XML配置,而且代码复杂度比较高,不易于二次开发。ooize相比azkaban是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器azkaban是很不错的候选对象。

    从功能上来对比

      两者均可以调度linux命令、mapreduce、spark、pig、java、hive、java程序、脚本工作流任务

      两者均可以定时执行工作流任务

    从工作流定义上来对比

      1、Azkaban使用Properties文件定义工作流

      2、Oozie使用XML文件定义工作流

    从工作流传参上来对比

      1、Azkaban支持直接传参,例如${input}

      2、Oozie支持参数和EL表达式,例如${fs:dirSize(myInputDir)}

    从定时执行上来对比

      1、Azkaban的定时执行任务是基于时间的

      2、Oozie的定时执行任务基于时间和输入数据

    从资源管理上来对比

      1、Azkaban有较严格的权限控制,如用户对工作流进行读/写/执行等操作

      2、Oozie暂无严格的权限控制

    从工作流执行上来对比

      1、Azkaban有三种运行模式:

        1.1、solo server mode:最简单的模式,数据库内置的H2数据库,管理服务器和执行服务器都在一个进程中运行,任务量不大项目可以采用此模式。

        1.2、 two server mode:数据库为mysql,管理服务器和执行服务器在不同进程,这种模式下,管理服务器和执行服务器互不影响

        1.3 、multiple executor mode:该模式下,执行服务器和管理服务器在不同主机上,且执行服务器可以有多个

        我这次采用第二种模式,管理服务器、执行服务器分进程,但在同一台主机上。

      2、Oozie作为工作流服务器运行,支持多用户和多工作流

    从工作流管理上来对比

      1、Azkaban支持浏览器以及ajax方式操作工作流

      2、Oozie支持命令行、HTTP REST、Java API、浏览器操作工作流

    另一版本区别:

      两者在功能方面大致相同,只是Oozie底层在提交Hadoop Spark作业是通过org.apache.hadoop的封装好的接口进行提交,而Azkaban可以直接操作shell语句。在安全性上可能Oozie会比较好。

      工作流定义:Oozie是通过xml定义的而Azkaban为properties来定义。

      部署过程:  Oozie的部署太虐心了。有点难。同时它是从Yarn上拉任务日志。

            Azkaban中如果有任务出现失败,只要进程有效执行,那么任务就算执行成功,这是BUG,但是Oozie能有效的检测任务的成功与失败。

      操作工作流:Azkaban使用Web操作。Oozie支持Web,RestApi,Java API操作。

      权限控制:   Oozie基本无权限控制,Azkaban有较完善的权限控制,入用户对工作流读写执行操作。

            Oozie的action主要运行在hadoop中而Azkaban的actions运行在Azkaban的服务器中。

      记录workflow的状态:Azkaban将正在执行的workflow状态保存在内存中,Oozie将其保存在Mysql中。

      出现失败的情况:Azkaban会丢失所有的工作流,但是Oozie可以在继续失败的工作流运行。

  • 相关阅读:
    Docker安装ngnix进行挂载
    Linux上传下载小工具
    uniapp——原生导航栏
    uniapp——scroll-view组件隐藏滚动条
    边框阴影——box-shadow
    uniapp-监听自定义跳转
    uniapp整屏滑动
    用伪类写圆点css
    Vue——生命周期
    uniapp多选按钮
  • 原文地址:https://www.cnblogs.com/zlslch/p/6296274.html
Copyright © 2020-2023  润新知