Hadoop高手之路--07--Azkaban工作流调度

Azkaban工作流调度

一、工作流概述

1. 背景

一个完整的数据分析系统通常都是由大量任务单元组成,例如shell脚本程序、java程序、mapreduce程序和hive脚本等。各任务单元之间存在时间先后及依赖关系,为了将这复杂的执行计划组织起来,需要一个工作流调度系统来调度执行。

2. 工作流调度工具

1) Azkaban

Azkaban是由Linkedin公司开源的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。

2) Oozie

Oozie是Apache旗下的,用于管理Hadoop任务的工作流/协调系统,可与Hadoop生态圈紧密结合,提供诸多配置和功能。

二、Azkaban概述

1. 特点

  1. 兼容所有版本的 Hadoop 。
  2. 基于 Web 的易用 UI
  3. 简单的 Web 和 HTTP 工作流上传。
  4. 项目工作空间
  5. 工作流调度。
  6. 模块化和插件化。
  7. 支持认证和授权
  8. 可跟踪用户行为。
  9. 失败和成功时的邮件提醒。
  10. SLA 警告和自动终止。
  11. 失败作业的重试。

2. Azkaban组成结构

   Azkaban工作流管理器由三个核心部分组成,分别是Relational Database(关系型数据库MySQL)、AzkabanWebServer(Web服务器)、AzkabanExecutorServer(执行服务器)。三者关系具体如图所示。

在这里插入图片描述

3. Azkaban部署模式

1) solo-server mode(独立服务器模式)

在独立服务器模式下,使用的数据库是内嵌的H2,并且web server和executor server都在同一进程中运行,通常适用于小规模测试阶段。

2) two server mode(双服务器模式)

双服务器模式适用于比较复杂的生产环境,它的数据库会由具有主从设置的MySQL实例提供支持。其中,Web服务器和执行服务器应在不同的进程中运行,以便升级和维护过程中不影响用户。

3) distributed multiple-executor mode(分布式多执行器模式)

分布式多执行器模式适用于特别复杂的生产环境,理想情况下,Web服务器和执行服务器应在不同的主机中运行,以便升级和维护不影响用户。这种分布式多主机设置的模式为Azkaban带来了强大且可扩展的性能。

三、Azkaban的部署

1. 下载

在这里插入图片描述
两种下载方法

1) 第一种:通用的github项目的下载方式

在这里插入图片描述
在这里插入图片描述

2) 第二种下载方法,可以有选择性的下载自己需要的版本

在这里插入图片描述
在这里插入图片描述

2. 上传

在这里插入图片描述

3. 安装unzip

需要用unzip进行解压,先安装unzip
在这里插入图片描述

4. 解压

在这里插入图片描述
在这里插入图片描述

5. Azkaban目录介绍

在这里插入图片描述

6. 编译

小知识:jar包依赖管理有两种方式:
Maven:pom.xml指定某个jar的坐标
Gradle:build.gradle指定某个jar的坐标,更加简洁

在这里插入图片描述

在这里插入图片描述

7. 出现错误,提示需要git工具,安装git

代码和版本管理工具:代码整合(小组合作)、版本管理(版本回退)、分支管理(master、dev)
Svn:集中式
Git:分布式

在这里插入图片描述

8. 重新编译

在这里插入图片描述
在这里插入图片描述

四、Mysql安装

下载并安装MySQL官方的 Yum Repository

在这里插入图片描述
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
在这里插入图片描述
安装MySQL服务器
在这里插入图片描述
在这里插入图片描述
这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb

五、mysql数据库设置

首先启动MySQL

在这里插入图片描述
查看MySQL运行状态,运行状态如图:

在这里插入图片描述
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

在这里插入图片描述
如下命令进入数据库:
在这里插入图片描述
输入初始密码(是上面图片最后面的 no;e!5>>alfg),此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

在这里插入图片描述
开启mysql的远程访问
在这里插入图片描述然后再输入下面两行命令

在这里插入图片描述
进入mysql数据库

在这里插入图片描述
查看user表

在这里插入图片描述
将root的host改为%

在这里插入图片描述
更改mysql的语言
首先重新登录mysql,然后输入status:
在这里插入图片描述
可以看到,绿色箭头处不是utf-8
因此我们先退出mysql,然后再到、etc目录下的my.cnf文件下修改一下文件内容
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
保存更改后的my.cnf文件后,重启下mysql,然后输入status再次查看,你就会发现变化啦
在这里插入图片描述
最后,到Windows下用远程连接工具启动mysql啦!!

在这里插入图片描述
链接成功

六、Azkaban数据库初始化

1. 链接mysql

命令行
mysql -h localhost -u root -p
可视化工具
在这里插入图片描述

2.创建azkaban数据库

命令行创建的命令为:create database azkaban;

在这里插入图片描述
在这里插入图片描述

3.找到相关的压缩文件

在这里插入图片描述

4.解压

在这里插入图片描述

5.进入解压后的文件夹查看

找到需要的sql文件

在这里插入图片描述

6.导入数据到azkaban数据库中

可视化方式,先把那个sql文件下载到本地
在这里插入图片描述
命令行:

在这里插入图片描述
use azkaban;
source /root/create-all-sql-0.1.0-SNAPSHOT.sql;

在这里插入图片描述

7.查看azkaban的数据库表

在这里插入图片描述

七、Azkaabn web 服务器安装配置

1.ssl创建

在这里插入图片描述
azkaban使用rsa公钥加密算法
在这里插入图片描述
keytool -keystore keystore -alias jetty -genkey -keyalg RSA

在这里插入图片描述

2.进入查看azkaban web服务器文件

在这里插入图片描述

3.解压

解压到/export/servers

tar xzvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C /export/servers/

在这里插入图片描述

4.查看目录

在这里插入图片描述

5.配置web服务

在这里插入图片描述
Azkaban-properties的配置

在这里插入图片描述

在这里插入图片描述
Azkaban-users.xml(可选的配置)

在这里插入图片描述

八、Azkaban executor 服务器安装配置

1.查看相关文件

在这里插入图片描述
在这里插入图片描述

2.解压

解压到/export/servers

tar xzvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C /export/servers/

在这里插入图片描述
在这里插入图片描述

3.配置exec服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

九、启动测试

1. 启动exec服务

在这里插入图片描述

2.查看是否启动成功

Jps

在这里插入图片描述

3.查看日志文件

在这里插入图片描述
查看命令
在这里插入图片描述
在这里插入图片描述
说明azkaban exector服务启动成功,占用38891端口

4.启动web服务

启动命令:

在这里插入图片描述

5.Jps查看进程

在这里插入图片描述
发现并没有启动azkaban服务

6. 查看日志

在这里插入图片描述
在这里插入图片描述

7.激活exector服务

curl -G “localhost:35338/executor?action=activate” && echo
执行时需要在azkaban exector服务的根目录下执行

在这里插入图片描述
各参数意义:
在这里插入图片描述

重新启动进程发现启动成功

8.访问webUI

在这里插入图片描述

9.登录webUI

用户名和密码都是azkaban
在这里插入图片描述

十、Azkaban的任务调度

1.任务调度测试

1)创建两个job文件

创建first.job
在这里插入图片描述
创建second.job

在这里插入图片描述

2)打包

把刚才创建的两个任务文件打成zip压缩包
安装zip

在这里插入图片描述
在这里插入图片描述

3)把打包好的zip文件下载到本地

在这里插入图片描述
在这里插入图片描述

4)在webUI中创建一个项目

在这里插入图片描述
在这里插入图片描述

5)上传压缩包

在这里插入图片描述

6)查看工作流详情

在这里插入图片描述

在这里插入图片描述

7)任务立即执行或者调度执行

在这里插入图片描述

点击绿色的按钮后出现如下界面

在这里插入图片描述

点击execute立即执行
在这里插入图片描述
查看执行结果发现执行成功

在这里插入图片描述
点击log查看日志文件

在这里插入图片描述

2.HDFS任务调度

1)创建job描述文件

在这里插入图片描述

2)将job文件打zip包

在这里插入图片描述

3)在webUI上创建项目并上传压缩包

在这里插入图片描述
在这里插入图片描述

4)启动hadoop集群

在这里插入图片描述

5)运行任务并查看

在这里插入图片描述
这里注意如果虚拟机内存少于3G会运行不成功

  1. 调大内存
  2. 修改配置文件
    如果怎样都运行失败的话,还有一个点就是, exec服务和web服务都必须在对应的根目录下启动, 这个点非常重要
    在这里插入图片描述
    查看hadoop下目录

在这里插入图片描述

十一、作业1: MapReduce任务调度

1.启动hdfs以及yarn

在这里插入图片描述

2.创建job文件

由于之前有了output文件,这里直接输出个新文件夹

在这里插入图片描述

3.开启exec服务

在这里插入图片描述

4.开启web服务

在这里插入图片描述

5.在webUI界面上创建项目

在这里插入图片描述

6.寻找hadoop自带的example的jar包

在这里插入图片描述

7.下载该jar包

在这里插入图片描述

8.将job文件和jar包打成zip包

在这里插入图片描述

9.将zip包上传到webUI界面

在这里插入图片描述
在这里插入图片描述

10.启动该项目

在这里插入图片描述
运行成功
在这里插入图片描述

11.在hadoop web端界面查看结果

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值