Hadoop高手之路9-Azkaban工作流管理器

文章目录

  • Hadoop高手之路9-Azkaban工作流管理器
    • 一、工作流概述
      • 1. 工作流简介
      • 2. 常见的工作流调度工具
        • 1) Azkaban
        • 2) Oozie
    • 二、Azkaban简介
      • 1. Azkaban组成结构
      • 2. Azkaban的部署模式
        • 1) solo-server mode(独立服务器模式)
        • 2) two server mode(双服务器模式)
        • 3) distributed multi-executor mode(分布式多执行器模式)
      • 3.Azkaban特点
    • 三、Azkaban的资源准备
      • 1. 下载
      • 2. 上传
      • 3. 解压
      • 4. 目录介绍
      • 5. 编译
      • 6. 修改gradle为国内镜像
      • 7.重新编译
      • 8. Azkaban安装包的获取
    • 四、mysql的安装
      • 1. 下载mysql安装yum源
      • 2. 安装yum源,并更新升级GPG
      • 3. 启动mysql服务器
      • 4. 获取临时密码
      • 5. 用临时密码登录mysql
      • 6. 修改root密码
      • 7. 远程连接mysql
      • 8. 添加允许远程连接的用户
      • 9. 重新编辑navicat连接属性
      • 10. 重新远程连接
    • 五、Azkaban的安装配置
      • 1. mysql的安装配置
        • 1) 创建azkaban的数据库及用户
        • 2) azkaban数据库表初始化
      • 2. Azkaban Web服务安装配置
        • 1) 解压安装包
        • 2) 配置web服务
      • 3. Azkaban Executor服务安装配置
        • 1) 解压安装包
        • 2) 配置
    • 六、Azkaban的启动测试
      • 1. 启动Azkaban Executor服务
        • 1) 启动命令
        • 2) 查看启动日志
        • 3) 关闭Azkaban Executor服务
      • 2. 启动Azkaban Web服务
        • 1) 启动命令
        • 2) 查看日志
      • 3. 激活executor服务
      • 4. 重新启动web服务
      • 5. 通过web浏览器查看
    • 七、Azkaban依赖任务调度管理
      • 1.创建Job文件
      • 2. 把job文件打成ZIP格式的压缩包
      • 3. 把打包后的文件下载到本地windows主机
      • 4. 在web ui中创建一个任务调度项目
      • 5. 上传任务压缩包
      • 6.查看工作流详情
      • 7. 任务立即执行或者调度执行
      • 8.任务执行出现错误,需要修改web服务配置
      • 9.重新启动exec和web服务,并重新执行调度任务
      • 10.查看执行结果
    • 八、AzkabanHDFS任务调度管理
      • 1.创建Job文件
      • 2. 把job文件打成ZIP格式的压缩包并下载
      • 3. 在webui上创建项目并上传压缩包
      • 4.启动hadoop集群
      • 5.启动执行
      • 6.查看结果
    • 九、AzkabanMapReduce任务调度管理
      • 1.创建Job文件
      • 2.与jar包一起打包成wordcount_mr压缩包
      • 3. 在webui上创建项目并上传压缩包
      • 4.打开Hadoop集群
      • 5.启动执行
      • 6.查看结果

img

Hadoop高手之路9-Azkaban工作流管理器

一、工作流概述

1. 工作流简介

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

2. 常见的工作流调度工具

1) Azkaban

英文解释:

Azkaban is a batch workflow job scheduler created at LinkedIn to run Hadoop jobs. Azkaban resolves the ordering through job dependencies and provides an easy to use web user interface to maintain and track your workflows.

翻译一下:

Azkaban是一个在LinkedIn上创建的批处理工作流作业调度程序,用于运行Hadoop作业。Azkaban通过作业依赖性解决了排序问题,并提供了一个易于使用的web用户界面来维护和跟踪您的工作流程。

2) Oozie

Oozie 是一个开源的工作流和协作服务引擎,基于 Apache Hadoop 的数据处理任务。Oozie 是可扩展的、可伸缩的面向数据的服务,运行在 Hadoop 平台上。

Oozie 包括一个离线的 Hadoop 处理的工作流解决方案,以及一个查询处理 API。

Hadoop高手之路9-Azkaban工作流管理器_第1张图片

Hadoop高手之路9-Azkaban工作流管理器_第2张图片

二、Azkaban简介

1. Azkaban组成结构

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

Hadoop高手之路9-Azkaban工作流管理器_第3张图片

2. Azkaban的部署模式

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

使用的数据库是内置的H2,而且web server和executor server都在统一进程中运行,通常用于小规模的测试阶段

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

使用的数据库是主从设置的mysql,web server和executor server在不同的进程中,通常用于比较复杂的生产环境。

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

使用的数据库是主从设置的mysql,web server和executor server在不同的主机中,通常用于特别复杂的生产环境。

3.Azkaban特点

  • Compatible with any version of Hadoop :兼容所有版本的 Hadoop。
  • Easy to use web UI:基于Web的易用 UI。
  • Simple web and http workflow uploads:简单的 Web 和 HTTP 工作流上传。
  • Project workspaces:项目工作空间。
  • Scheduling of workflows:工作流调度。
  • Modular and pluginable:模块化和插件化。
  • Authentication and Authorization:支持认证和授权。
  • Tracking of user actions:可跟踪用户行为。
  • Email alerts on failure and successes:失败和成功时的邮件提醒。
  • SLA alerting and auto killing:SLA警告和自动终止。
  • Retrying of failed jobs:失败作业的重试。

三、Azkaban的资源准备

1. 下载

Hadoop高手之路9-Azkaban工作流管理器_第4张图片

两种下载方式

第一种:通用的github项目的下载方式,此处使用这种方式

GitHub - azkaban/azkaban: Azkaban workflow manager.

Hadoop高手之路9-Azkaban工作流管理器_第5张图片

第二种:有选择性的下载自己需要的版本

Releases · azkaban/azkaban (github.com)

Hadoop高手之路9-Azkaban工作流管理器_第6张图片

Hadoop高手之路9-Azkaban工作流管理器_第7张图片

2. 上传

Hadoop高手之路9-Azkaban工作流管理器_第8张图片

3. 解压

先安装unzip

Hadoop高手之路9-Azkaban工作流管理器_第9张图片

解压

image-20230105224527339

Hadoop高手之路9-Azkaban工作流管理器_第10张图片

移动到/export/servers文件夹下

Hadoop高手之路9-Azkaban工作流管理器_第11张图片

4. 目录介绍

Hadoop高手之路9-Azkaban工作流管理器_第12张图片

5. 编译

小知识:jar包依赖管理方式有两种

  • Maven:pom.xml指定某个jar包的坐标
  • Gradle:build.gradle指定某个jar的坐标,更加简洁,是android开发常用的方式

azkaban是用Gradle方式来开发的,所以编译也要用Gradle

Hadoop高手之路9-Azkaban工作流管理器_第13张图片

Hadoop高手之路9-Azkaban工作流管理器_第14张图片

编译

Hadoop高手之路9-Azkaban工作流管理器_第15张图片

./gradlew build -x test

image-20230105224756719

出现错误,需要先安装git

Hadoop高手之路9-Azkaban工作流管理器_第16张图片

小知识:版本和代码管理的工具主要有git和svn

Hadoop高手之路9-Azkaban工作流管理器_第17张图片

安装git

image-20221125230352245

Hadoop高手之路9-Azkaban工作流管理器_第18张图片

继续进行编译,但是使用gradle国外镜像编译太慢了,几个小时也没成功,下面我们修改gradle为国内镜像。

6. 修改gradle为国内镜像

Hadoop高手之路9-Azkaban工作流管理器_第19张图片

Hadoop高手之路9-Azkaban工作流管理器_第20张图片

7.重新编译

Hadoop高手之路9-Azkaban工作流管理器_第21张图片

Hadoop高手之路9-Azkaban工作流管理器_第22张图片

Hadoop高手之路9-Azkaban工作流管理器_第23张图片

用了一个半小时,终于编译成功了,可能是网速比较慢。

8. Azkaban安装包的获取

cd /export/servers/azkaban-master/azkaban-web-server/build/distributions
ll

image-20230105225018717

cd /export/servers/azkaban-master/azkaban-exec-server/build/distributions
ll

image-20230105225027374

cd /export/servers/azkaban-master/azkaban-db/build/distributions
ll

image-20230105225035430

cd /export/servers/azkaban-master/azkaban-solo-server/build/distributions
ll

image-20230105225046383

四、mysql的安装

1. 下载mysql安装yum源

查看CentOS版本

image-20230105225056230

安装wget

Hadoop高手之路9-Azkaban工作流管理器_第24张图片

wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm

image-20230105225116698

2. 安装yum源,并更新升级GPG

#  安装 i代表安装,v代表可视的,h代表进度
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
 
# 不执行安装会出错
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-<当前年份>
 
# 安装mysql
yum install mysql-community-server

Hadoop高手之路9-Azkaban工作流管理器_第25张图片

3. 启动mysql服务器

systemctl start mysqld.service
systemctl status mysqld

Hadoop高手之路9-Azkaban工作流管理器_第26张图片

4. 获取临时密码

grep 'temporary password' /var/log/mysqld.log

5. 用临时密码登录mysql

mysql -uroot -p

Hadoop高手之路9-Azkaban工作流管理器_第27张图片

6. 修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Bigdata20!';

其中‘new password’替换成你要设置的密码,注意:密码设置必须要大小写字母数字和特殊符号(,/';:等),不然不能配置成功

Hadoop高手之路9-Azkaban工作流管理器_第28张图片

7. 远程连接mysql

Hadoop高手之路9-Azkaban工作流管理器_第29张图片

Hadoop高手之路9-Azkaban工作流管理器_第30张图片

Hadoop高手之路9-Azkaban工作流管理器_第31张图片

提示错误,不允许远程连接

8. 添加允许远程连接的用户

GRANT ALL PRIVILEGES ON *.* TO '20bigdata'@'%' IDENTIFIED BY 'Bigdata2022!' WITH GRANT OPTION; 

9. 重新编辑navicat连接属性

Hadoop高手之路9-Azkaban工作流管理器_第32张图片

10. 重新远程连接

Hadoop高手之路9-Azkaban工作流管理器_第33张图片

五、Azkaban的安装配置

1. mysql的安装配置

1) 创建azkaban的数据库及用户

Hadoop高手之路9-Azkaban工作流管理器_第34张图片

2) azkaban数据库表初始化

Hadoop高手之路9-Azkaban工作流管理器_第35张图片

Hadoop高手之路9-Azkaban工作流管理器_第36张图片

use azkaban;
source /export/servers/azkaban-master/azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT/create-all-sql-0.1.0-SNAPSHOT.sql

image-20230105225455101

show tables;

Hadoop高手之路9-Azkaban工作流管理器_第37张图片

Hadoop高手之路9-Azkaban工作流管理器_第38张图片

Hadoop高手之路9-Azkaban工作流管理器_第39张图片

2. Azkaban Web服务安装配置

1) 解压安装包

先创建azkaban目录

Hadoop高手之路9-Azkaban工作流管理器_第40张图片

cd /export/servers/azkaban-master/azkaban-web-server/build/distributions/
tar zvxf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C /export/servers/azkaban

在这里插入图片描述

image-20230105225626085
Hadoop高手之路9-Azkaban工作流管理器_第41张图片

2) 配置web服务

修改azkaban-properties

Hadoop高手之路9-Azkaban工作流管理器_第42张图片

image-20230105225651366

修改azkaban-users.xml,可取默认
Hadoop高手之路9-Azkaban工作流管理器_第43张图片

3. Azkaban Executor服务安装配置

1) 解压安装包

Hadoop高手之路9-Azkaban工作流管理器_第44张图片

Hadoop高手之路9-Azkaban工作流管理器_第45张图片

2) 配置

Hadoop高手之路9-Azkaban工作流管理器_第46张图片

Hadoop高手之路9-Azkaban工作流管理器_第47张图片

六、Azkaban的启动测试

1. 启动Azkaban Executor服务

1) 启动命令

Hadoop高手之路9-Azkaban工作流管理器_第48张图片

2) 查看启动日志

Hadoop高手之路9-Azkaban工作流管理器_第49张图片

在这里插入图片描述

3) 关闭Azkaban Executor服务

在这里插入图片描述

2. 启动Azkaban Web服务

1) 启动命令

Hadoop高手之路9-Azkaban工作流管理器_第50张图片

2) 查看日志

image-20230105225832350

Hadoop高手之路9-Azkaban工作流管理器_第51张图片

提示没有激活的exector服务

再次查看进程

image-20230105225848069

发现并没有启动web服务

3. 激活executor服务

查看exec服务端口号

Hadoop高手之路9-Azkaban工作流管理器_第52张图片
在这里插入图片描述

执行激活命令

curl -G "hadoop001:37068/executor?action=activate"

在这里插入图片描述

说明:

  • 必须在Azkaban Executor的根目录下执行该命令
  • executor服务的端口号需要通过查看日志文件获取

4. 重新启动web服务

执行启动命令

Hadoop高手之路9-Azkaban工作流管理器_第53张图片

查看启动日志

image-20230105230035092

5. 通过web浏览器查看

Hadoop高手之路9-Azkaban工作流管理器_第54张图片

输入用户名:azkaban,密码:azkaban,登录

image-20230105230119046

七、Azkaban依赖任务调度管理

1.创建Job文件

先创建两个有依赖关系的job文件first.job和second.job

first.job

Hadoop高手之路9-Azkaban工作流管理器_第55张图片

second.job

Hadoop高手之路9-Azkaban工作流管理器_第56张图片

2. 把job文件打成ZIP格式的压缩包

Hadoop高手之路9-Azkaban工作流管理器_第57张图片

Hadoop高手之路9-Azkaban工作流管理器_第58张图片

3. 把打包后的文件下载到本地windows主机

Hadoop高手之路9-Azkaban工作流管理器_第59张图片

Hadoop高手之路9-Azkaban工作流管理器_第60张图片

4. 在web ui中创建一个任务调度项目

Hadoop高手之路9-Azkaban工作流管理器_第61张图片

Hadoop高手之路9-Azkaban工作流管理器_第62张图片

注意:创建项目时名称和描述都不能出现中文。

5. 上传任务压缩包

Hadoop高手之路9-Azkaban工作流管理器_第63张图片

6.查看工作流详情

Hadoop高手之路9-Azkaban工作流管理器_第64张图片

image-20230105230454223

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

Hadoop高手之路9-Azkaban工作流管理器_第65张图片

出现下面的界面:
Hadoop高手之路9-Azkaban工作流管理器_第66张图片

点击立即执行

Hadoop高手之路9-Azkaban工作流管理器_第67张图片

8.任务执行出现错误,需要修改web服务配置

Hadoop高手之路9-Azkaban工作流管理器_第68张图片

修改commonprivate文件

Hadoop高手之路9-Azkaban工作流管理器_第69张图片

9.重新启动exec和web服务,并重新执行调度任务

重启时需要激活exec

curl -G "hadoop001:45241/executor?action=activate"

image-20230105230557523

10.查看执行结果

Hadoop高手之路9-Azkaban工作流管理器_第70张图片

Hadoop高手之路9-Azkaban工作流管理器_第71张图片

Hadoop高手之路9-Azkaban工作流管理器_第72张图片

八、AzkabanHDFS任务调度管理

1.创建Job文件

Hadoop高手之路9-Azkaban工作流管理器_第73张图片

2. 把job文件打成ZIP格式的压缩包并下载

Hadoop高手之路9-Azkaban工作流管理器_第74张图片

3. 在webui上创建项目并上传压缩包

Hadoop高手之路9-Azkaban工作流管理器_第75张图片

4.启动hadoop集群

Hadoop高手之路9-Azkaban工作流管理器_第76张图片

Hadoop高手之路9-Azkaban工作流管理器_第77张图片

image-20230105230727316

5.启动执行

Hadoop高手之路9-Azkaban工作流管理器_第78张图片

6.查看结果

Hadoop高手之路9-Azkaban工作流管理器_第79张图片

Hadoop高手之路9-Azkaban工作流管理器_第80张图片

九、AzkabanMapReduce任务调度管理

1.创建Job文件

Hadoop高手之路9-Azkaban工作流管理器_第81张图片

# mr.job
type=command
command=hadoop jar hadoop-mapreduce-examples-3.1.4.jar wordcount hdfs://hadoop001:9000/input hdfs://hadoop001:9000/output/mrjobresult

Hadoop高手之路9-Azkaban工作流管理器_第82张图片

2.与jar包一起打包成wordcount_mr压缩包

Hadoop高手之路9-Azkaban工作流管理器_第83张图片

3. 在webui上创建项目并上传压缩包

Hadoop高手之路9-Azkaban工作流管理器_第84张图片

4.打开Hadoop集群

Hadoop高手之路9-Azkaban工作流管理器_第85张图片

Hadoop高手之路9-Azkaban工作流管理器_第86张图片

image-20230105230925378

5.启动执行

image-20230105230933136

6.查看结果

这个需要等一会才运行完。

Hadoop高手之路9-Azkaban工作流管理器_第87张图片

Hadoop高手之路9-Azkaban工作流管理器_第88张图片

Hadoop高手之路9-Azkaban工作流管理器_第89张图片

参考文章:

CentOS7安装MySQL(完整版)

【CentOS 7.9】安装mysql 5.7笔记

你可能感兴趣的:(Hadoop高手之路,hadoop,大数据,分布式)