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

news2025/1/18 10:01:43

文章目录

  • 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。

image-20230105224210505

image-20230105224259994

二、Azkaban简介

1. Azkaban组成结构

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

在这里插入图片描述

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. 下载

image-20230105224333794

两种下载方式

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

GitHub - azkaban/azkaban: Azkaban workflow manager.

image-20230105224409491

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

Releases · azkaban/azkaban (github.com)

image-20230105224431867

image-20230105224441634

2. 上传

image-20230105224454623

3. 解压

先安装unzip

image-20230105224513296

解压

image-20230105224527339

image-20230105224536167

移动到/export/servers文件夹下

image-20230105224545757

4. 目录介绍

image-20230105224600474

5. 编译

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

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

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

image-20230105224624856

编译

image-20230105224639288

./gradlew build -x test

image-20230105224756719

出现错误,需要先安装git

image-20230105224812097

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

在这里插入图片描述

安装git

image-20221125230352245

image-20230105224836511

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

6. 修改gradle为国内镜像

image-20230105224847995

image-20230105224903402

7.重新编译

image-20230105224915528

image-20230105224928036

image-20230105224944058

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

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

image-20230105225107221

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

image-20230105225130537

3. 启动mysql服务器

systemctl start mysqld.service
systemctl status mysqld

image-20230105225140351

4. 获取临时密码

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

5. 用临时密码登录mysql

mysql -uroot -p

6. 修改root密码

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

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

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

7. 远程连接mysql

在这里插入图片描述

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

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

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

9. 重新编辑navicat连接属性

10. 重新远程连接

五、Azkaban的安装配置

1. mysql的安装配置

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

2) azkaban数据库表初始化

image-20230105225435625

image-20230105225445584

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;

image-20230105225505975

image-20230105225516468

image-20230105225523967

2. Azkaban Web服务安装配置

1) 解压安装包

先创建azkaban目录

image-20230105225532718

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
在这里插入图片描述

2) 配置web服务

修改azkaban-properties

image-20230105225641360

image-20230105225651366

修改azkaban-users.xml,可取默认
在这里插入图片描述

3. Azkaban Executor服务安装配置

1) 解压安装包

image-20230105225712486

在这里插入图片描述

2) 配置

image-20230105225727002

image-20230105225734307

六、Azkaban的启动测试

1. 启动Azkaban Executor服务

1) 启动命令

image-20230105225746444

2) 查看启动日志

在这里插入图片描述

在这里插入图片描述

3) 关闭Azkaban Executor服务

在这里插入图片描述

2. 启动Azkaban Web服务

1) 启动命令

image-20230105225823439

2) 查看日志

image-20230105225832350

image-20230105225840167

提示没有激活的exector服务

再次查看进程

image-20230105225848069

发现并没有启动web服务

3. 激活executor服务

查看exec服务端口号

image-20230105225942628
在这里插入图片描述

执行激活命令

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

在这里插入图片描述

说明:

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

4. 重新启动web服务

执行启动命令

image-20230105230025638

查看启动日志

image-20230105230035092

5. 通过web浏览器查看

在这里插入图片描述

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

image-20230105230119046

七、Azkaban依赖任务调度管理

1.创建Job文件

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

first.job

image-20230105230131116

second.job

在这里插入图片描述

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

在这里插入图片描述

image-20230105230152333

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

image-20230105230202628

image-20230105230210348

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

image-20230105230222975

在这里插入图片描述

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

5. 上传任务压缩包

image-20230105230437360

6.查看工作流详情

image-20230105230447443

image-20230105230454223

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

image-20230105230501822

出现下面的界面:
在这里插入图片描述

点击立即执行

image-20230105230530123

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

image-20230105230538577

修改commonprivate文件

在这里插入图片描述

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

重启时需要激活exec

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

image-20230105230557523

10.查看执行结果

image-20230105230606199

image-20230105230613448

image-20230105230621407

八、AzkabanHDFS任务调度管理

1.创建Job文件

在这里插入图片描述

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

image-20230105230643142

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

在这里插入图片描述

4.启动hadoop集群

在这里插入图片描述

image-20230105230709371

image-20230105230727316

5.启动执行

image-20230105230735536

6.查看结果

image-20230105230749717

在这里插入图片描述

九、AzkabanMapReduce任务调度管理

1.创建Job文件

image-20230105230817759

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

image-20230105230847715

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

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

image-20230105230903292

4.打开Hadoop集群

image-20230105230911421

在这里插入图片描述

image-20230105230925378

5.启动执行

image-20230105230933136

6.查看结果

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

在这里插入图片描述

image-20230105231000055

image-20230105231007397

参考文章:

CentOS7安装MySQL(完整版)

【CentOS 7.9】安装mysql 5.7笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/144782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8Manage SRM:使用采购管理软件进入现代化模式

在企业运营发展中&#xff0c;采购组织一直是一个非常重要的部门&#xff0c;它会直接影响企业的采购成本效益。在采购活动中&#xff0c;如果采用传统线下的采购方式&#xff0c;容易导致采购信息不集中&#xff0c;效率低&#xff0c;出错率高&#xff0c;最终损害企业的利益…

社区发现系列02-算法介绍

hello, 大家好&#xff0c;欢迎来到阿君聊风控&#xff0c;我是阿君&#xff08;一名有7年互金和电商风控经验的算法工程师&#xff09;。在上篇文章https://blog.csdn.net/u010569893/article/details/128565829?spm1001.2014.3001.5502 中我们了解到可以用社区发现技术来对图…

全面兼容各端的动画库PAG,对标Lottie

感谢Tencent 开源了PAG库&#xff0c;终于有了国人自己的动画库了&#xff0c;该库兼容&#xff1a;移动端&#xff0c;桌面端&#xff0c;&#xff0c;WEB端&#xff0c;还有小程序端&#xff0c;真可谓用心了&#xff0c;而且PAG库相对其他库&#xff0c;使用的pag文件更小&a…

《UEFI内核导读》SecCore与PeiCore简介(I)

敬请关注&#xff1a;“固件C字营 SecCore也被称之为VTF&#xff0c;被映射到Boot Firmware Volume (BFV)&#xff0c;BFV的地址被放置在0xFFFFFFE0连续的4个字节&#xff08;小端模式&#xff09;。 SecCore 是一个FFS firmware file&#xff0c;其文件末端地址与于BFV的末端…

磨金石教育摄影技能干货分享|摄影拼贴技法的运用与效果

河南省-黄阳惠智-《那是山吗》画面中是一片群山景象。我们看上去感觉像是画出来的&#xff0c;又像是电脑做的图。其实这是摄影师用了中国山水画的特有表现手法&#xff0c;对桂林山水的景象&#xff0c;进行了拼贴在创造。作者用一些非山非水的现代物品&#xff0c;像织女一样…

【记录一】gis理论

gis地图相关一、gis 理论知识二、fianlshell连接服务器连接服务器命令行记录三、geoserver地图服务器初识geoserver添加新图层最近图层样式修改图层样式新增编辑图层的样式四、git上传代码查看远程地址上传代码时新建tag一、gis 理论知识 二、fianlshell连接服务器 连接服务器…

【小知识点】免费头像API,用 Python Flask 动态生成一个汉字头像

本案例是 爬虫训练场 项目的衍生案例&#xff0c;用于渲染用户头像&#xff0c;大家也可以将该接口用于其它目的。 本文会使用随机汉字生成技术&#xff0c;如未掌握&#xff0c;可以查看 Python 随机生成一个汉字 文章目录基础环境配置加载本地 txt 文件&#xff0c;用于随机生…

打包安卓apk后的V1和V2签名

前言&#xff1a;打包apk后上架之前需要进行加固&#xff0c;加固后生成的apk文件需要进行重新签名&#xff1b;单独的apk文件可以使用基于JDK&#xff08;需要安装java jdk&#xff09;和SDK&#xff08;需要下载android studio 开发工具&#xff09;的命令进行手动签名。安装…

【Maven】核心概念

Maven的核心概念一、Maven工程中约定的目录结构二、仓库管理&#x1f3b6;仓库的概述&#x1f3b6;仓库的分类本地仓库所在位置的设置重写更改本地仓库路径&#xff0c;不使用默认路径有什么好处呢&#xff1f;&#x1f3b6;Maven对仓库的使用三、POM工程的唯一标识依赖&#x…

数据结构与算法:泛型初学习

1.包装类 java中的数据类型int&#xff0c;double等不是对象&#xff0c;无法通过向上转型获取到Object提供的方法&#xff0c;而像String却可以&#xff0c;只因为String是一个对象而不是一个类型。基本数据类型由于这样的特性&#xff0c;导致无法参与转型&#xff0c;泛型&…

【服务器数据恢复】Raid5丢失一块盘被重建的数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器上5块硬盘组建raid5磁盘阵列&#xff0c;用于存储公司数据&#xff0c;无备份。 服务器故障&分析&#xff1a; 服务器上一块硬盘故障掉线&#xff0c;用户聘请一家运维公司对服务器进行维护&#xff0c;运维公司技术人员在没有了…

redis 基础

Redis学习笔记配置文件启动redis与redis进行交互redis命令Redis通用命令keys 查看所有符合模板的keytype 查看这个key的存储类型![在这里插入图片描述](https://img-blog.csdnimg.cn/175e3a5c1b064ce09b9b47cc1c7b34f9.png)del 删除一个keyexists 判断一个Key是否存在ttl 查看一…

HummerRisk V0.8.0:新增金山云、K8s基准检测、源IP审计分析等

HummerRisk V0.8.0发布&#xff1a;多云检测支持金山云、K8s检测新增CIS Benchmark 功能 、操作审计增加源 IP 分析功能、主机检测增加Linux 检测规则。同时优化 operator及Benchmark 的自动/手动安装&#xff0c;优化多个结果展示页面等。 感谢社区中小伙伴们的反馈&#xff…

整型常量不同进制间的相互转换

整型常量可以分别用二进制、八进制、十进制和十六进制表示&#xff0c;不同的进制并不影响数据本身的大小&#xff0c;同一个整型常量可以在不同进制之间转换&#xff0c;具体转换方式如下。 1.十进制和二进制之间的转换 (1)十进制转二进制 十进制转换成二进制就是一个除以2…

实验用试剂mPEG-PDLLA介绍;甲氧基聚乙二醇-聚DL-丙交酯 嵌段共聚物

PLA-MPEG、peg-pla、mPEG-PDLLA 甲氧基聚乙二醇-聚乳酸、甲氧基聚乙二醇-聚DL-丙交酯 结构式&#xff1a; 【详情】 化学式&#xff1a;CH3(C2H4O)m (C6H10O2)n 溶剂&#xff1a;氯仿、二氯甲烷、丙酮、DMF、DMSO等有机溶剂。 性状&#xff1a;半固体或固体&a…

【C++核心编程】C++全栈体系(八)

C核心编程 第四章 类和对象 C面向对象的三大特性为&#xff1a;封装、继承、多态 C认为万事万物都皆为对象&#xff0c;对象上有其属性和行为 例如&#xff1a; ​ 人可以作为对象&#xff0c;属性有姓名、年龄、身高、体重…&#xff0c;行为有走、跑、跳、吃饭、唱歌… …

数据采集网关对接MySQL数据库

数据采集网关嵌入式 ARM 控制器 BL301/BL302支持 MySQL、InfluDB、SQLite 等数据库。Mysql 支持 5.1.51~5.1.73 版本。 将编译好的文件拷贝到 BL302 的/usr/local/mysql 目录下&#xff0c;将里面的可执行文件复制 到/usr/sbin 目录下或者在设备上设置环境变量 export PATH&quo…

Mentor-dft 学习笔记 day51-State Stability Examples

State Stability Examples 以下为包含状态稳定性报告的示例&#xff0c;显示了状态稳定性分析中的不同行为。示例基于图B-1所示的设计。该设计具有以下三个时钟&#xff1a;• clk1— The only scan clock • clk2— Clocks a particular non-scan flip-flop • reset— Resets…

燕山大学软件学院硕士研究生指导教师情况

燕山大学信息科学与工程学院&#xff08;软件学院&#xff09;简介 燕山大学信息科学与工程学院源于东北重型机械学院自动控制系&#xff0c;始建于 1960 年。1983 年&#xff0c;无线电技术、计算机及应用两个专业脱离自动控制系&#xff0c;于东北重型机械学院组建计算机 工…

Java中的.length与.length()

目录一. .length1. .length究竟有多长&#xff1f;2. 为什么会有.length呢&#xff1f;3. 二维数组的创建方法4. 数组是对象二. .length()1. .length()怎么用呢&#xff1f;2. char数组怎么转换为String3. String怎么转换为char数组三. 对比1. 为什么数组不像String&#xff0c…