大数据任务调度(Azkaban,Oozie)

Hadoop调度详解:Oozie与Azkaban对比分析
本文深入探讨了Hadoop生态中的两大调度工具Oozie和Azkaban。Oozie是一个基于DAG的工作流管理系统,用于管理Hadoop中的任务,而Azkaban则是LinkedIn开发的批量工作流调度器。文章详细介绍了Oozie的架构、运行原理、元数据库、Action节点类型以及调度策略。此外,还涵盖了Azkaban的运行模式、核心组件、元数据库、用户管理和调度策略。通过对两者的特点和应用场景的对比,帮助读者理解如何选择合适的调度工具。


在这里插入图片描述

常见调度工具

  • CRONTAB (最简单的方式,适合不是非常复杂的场景,比如只按照时间来调度)
  • OOZIE(Hadoop自带的)
  • AZKABAN(开源的一个调度工具)
  • 定制开发

Oozie

Oozie是一个基于工作流的调度系统,用来管理Hadoop中的的各种操作。
它是运行在Java Servlet容器中的Web应用,并用数据库存储工作流定
义及状态等元数据。

  • Hadoop生态自带调度系统
  • 工作流通过DAG(有向无环图)来控制
  • 调度可以基于时间和数据驱动
  • 工作流通过hPDL定义(一种XML流程定义语言)
  • 资源文件(脚本、Jar包等)存放在HDFS

Oozie架构

在这里插入图片描述
中间块Oozie Server是一个web服务

Oozie运行原理

原理:通过DAG有向无环图控制workflow.xml中定义好的工作流节点,Oozie Server向Hadoop集群提交map-only的Oozie Launcher作业,Launcher启动工作流中要执行的操作

节点(Node):

  • 控制节点(CONTROL NODE):工作流的流程控制,start,end,fork,join,kill
  • 动作节点(ACTION NODE) : hive,shell,sqoop,pig,mr

Oozie 工作三大核心

  • Workflow
    控制流程及动作节点定义,依赖关系配置,都是在这里实现。
  • Coordinator
    按照时间或者数据驱动调度workflow。
  • Bundle
    Coordinator的集合

Oozie 元数据库

主要关注红色的表
在这里插入图片描述

Oozie Action 节点类型

在这里插入图片描述

Oozie Job 创建方式

  • HUE
    在这里插入图片描述
  • OOZIE命令行

Hue 创建 Oozie job 步骤及演示

  • 登陆CMF
    在这里插入图片描述
  • 进入HUE WEB页面
    在这里插入图片描述
  • 打开Workflows菜单=>Editors => Workflows
    在这里插入图片描述
    在这里插入图片描述
  • 创建,选择Action类型,配置相关信息,保存(红框里是action类型比如hive,spark,shell等等)
    在这里插入图片描述
    拖拽shell的action
    在这里插入图片描述
    在这里插入图片描述
  • 提交运行
    选择后点击Add即可
    同时添加files
    在这里插入图片描述

Oozie Web 界面

浏览器中输入 oozie_server:11000/oozie
在这里插入图片描述

查看workflow,coord,bundle

在这里插入图片描述

Oozie的Action

Oozie Workflow 之 Hive Action

<action name="hive2-4fbc" cred="hive2">
	<hive2 xmlns="uri:oozie:hive2-action:0.1">
		<job-tracker>${jobTracker}</job-tracker>
		<name-node>${nameNode}</name-node>
		<configuration>
			<property>
				<name>mapred.job.queue.name</name>
				<value>root.users.root</value>
			</property>
		</configuration>
		<jdbc-url>jdbc:hive2://gp-bd-master01:10000/default</jdbc-url>
		<script>/user/root/vingo/oozie/1_create_table.sql</script>
	</hive2>
	<ok to="End"/>
	<error to="Kill"/>
</action>

Oozie W W orkflow 之 Shell Action

<action name="shell-6096">
	<shell xmlns="uri:oozie:shell-action:0.1">
		<job-tracker>${jobTracker}</job-tracker>
		<name-node>${nameNode}</name-node>
		<exec>/user/root/vingo/oozie/shell/echo.sh</exec>
		<file>/user/root/vingo/oozie/shell/echo.sh#echo.sh</file>
			<capture-output/>
	</shell>
	<ok to="End"/>
	<error to="Kill"/>
</action>

#echo.sh加#的意思是把这个文件添加到临时目录里;因为在集群中,运行此action的节点可能没有这个文件。

Oozie W W orkflow 之 Sqoop Action

<action name="sqoop-8716">
	<sqoop xmlns="uri:oozie:sqoop-action:0.2">
		<job-tracker>${jobTracker}</job-tracker>
		<name-node>${nameNode}</name-node>
		<command>list-databases --connect jdbc:mysql://gp-bd-slave01:3306/
		--username root --password root</command>
	</sqoop>
	<ok to="End"/>
	<error to="Kill"/>
</action>

Oozie DAG 图

在这里插入图片描述
复杂的DAG可能无法直接显示,可以通过如下链接获取:
http://oozie master ip:11000/oozie/v2/job/ 0000008-180418034504230-oozie-oozi-W ?show=graph

Oozie 命令行工具

(1)启动/ /停止

  • 后台运行命令:
    bin/oozied.sh start
  • 前台运行命令:
    bin/oozied.sh run
  • 停止运行命令:
    bin/oozied.sh stop
  • 查看状态
    oozie admin -oozie http://localhost:11000/oozie -status

(2)作业提交

  • 提交
    oozie job -oozie http://localhost:11000/oozie -config job.properties -
    submit
    注: 设置OOZIE_URL 可以不用每次都写-oozie http://localhost:11000/oozie
    export OOZIE_URL=http://localho
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值