Hadoop - Azkaban 作业调度
对于前两种,使用 Crontab 和 Quartz 是基本可以满足业务需求,但有其弊端。在 Job 数量庞大的情况下,Crontab 脚本的编写,变得异常复杂。其调度的过程也不能透明化,让管理变得困难。Quartz 虽然不用编写脚本,实现对应的调度 API 即可,然其调度过程不透明,不涵盖 Job 运行详情。需自行开发其功能。
因而,第三方的调度系统便应运而生了。在《Hadoop - 任务调度系统比较》一文中,介绍第三方调度系统之间的差异。这里笔者就不多赘述了。本篇博文,笔者给大家介绍 Azkaban 的相关使用心得,以及在使用中遇到的种种问题和解决思路。
Azkaban 托管在 Github 上,属于开源产品。它由以下几部分组成:
Web Server Executor Server MySQL Plugins(HDFS,JobType,HadoopSecurityManager,JobSummary,PigVisualizer,Reportal)其各个模块的功能,在《Hadoop - 任务调度系统比较》中有对应的介绍,这里就不多赘述了。
2.1 How to use在介绍完其核心模块后,我们如何使用这样一个调度系统,来调度我们所编写好的应用。下面,笔者将详细为大家介绍如何来完成这部分工作。
首先,Azkaban 是一个独立的系统,不需要依赖 Hadoop 集群环境。我们可以用单独的节点来构建这样一个调度系统。但是根据系统本身的需要,依赖以下环境:
MySQL在准备完成以上依赖环境后,我们可以构建这样一个调度系统。在[官网]上下载二进制安装包。官网更新的二进制安装包比 Github 发布的较低,若需要使用新版本的 Azkaban ,可在 Github 上下载。
在准备好安装包后,我们开始去部署相关安装包。
2.2 How to install 2.2.1 DB Setup首先,我们要在 MySQL 中新建 Azkaban 的数据库,操作内容如下所示:
SQL 文件在你安装包 azkaban-sql-script-2.5.0.tar.gz 中,找到 create-all-sql-2.5.0.sql 执行即可。执行成功后,会在 Azkaban 的数据库下,生成以下表:
接下来是安装 Web Server,解压其安装包,然后在 conf 目录下配置相关文件即可:
azkaban.properties#Azkaban UserManager class user.manager. > 另外,Azkaban 需要使用到 KeyStore,在 ${AZKABAN_WEB_SERVER}/conf 下运行如下命令,内容如下所示:
启动之前先在 ${AZKABAN_WEB_SERVER} 目录下创建 logs 目录,进入 ${AZKABAN_WEB_SERVER} 目录,运行如下命令:
成功启动,出现以下截图信息:
然后,输入在浏览器中 https://your_host:8443 出现以下界面:
接着输入用户名和密码:azkaban/azkaban 便可进入到调度系统中。
2.2.3 Executor SetupWeb Server 只是提供可视化,要想调度我们所编写的应用,需要依赖 Executor 服务。在 ${AZKABAN_EXECUTOR}/conf 下配置以下内容:
azkaban.properties3.Flow
下面给大家介绍使用流程,首先,我们在 Web Server 的 Web Console 上创建一个项目,如下图所示:
然后,点击上传按钮,将我们编写好的应用进行打包上传。这里 WordCount 为例子。如下图所示:
在 WordCount.zip 文件中,包含两个文件,一个是我们编写需要执行的 JAR 文件,另一个是对 JAR 文件进行描述的 Job 文件,即:WordCount.job,其内容涉及如下:
java. > 这里笔者只是做了最小化配置,指明执行类型,和 Java 的 MainClass。
在 Executor Flow 中可以设置,告警通知者,在执行完成,或是失败的时候通知应用开发者,让其知晓执行进度,如下所示:
如上图,我们点击 Schedule 按钮,可以设置调度的时间。如下图所示:
在调度模块,现实该项目任务的调度信息,如下图所示:
在上图中,我们还可以设置 SLA 告警模块,在执行 Job 的过程中,若是任务超出限定时间,会将告警信息通知所这是的人。如下图所示:
另外,我们可以在 Executing 模块查看正在执行的 Job,在 History 模块下可以查看已执行完成的 Job。若是需要使用 Azkaban 来查看 HDFS 文件系统的结构目录,添加对应的插件即可。这里就不多赘述了。
这里需要注意的是,由于我们所编写的应用会上传到 MySQL 存储,这里需要设置 MySQL 的 max_allowed_packet 变量,在 /etc/my.cnf 中进行配置,内容如下所示:
然后重启 MySQL 的服务即可。另外,官方发布的 Azkaban-2.5 版本,路径设置有问题,解决方式有两种:第一,按照错误提示,配置对应的路径;第二,修改源码中的路径读取代码,然后重新打包编译。
5.结束语这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!
Hadoop 集群的搭建与配置 你好看官,里面请!今天笔者讲的是Hadoop 集群的搭建与配置。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。
相关文章
- Hadoop资源调度器
- 试述Hadoop的HDFS及其组成_hadoop命令和hdfs命令区别
- 大数据概况及Hadoop生态系统总结
- 大数据spark、hadoop、hive、hbase面试题及解析[通俗易懂]
- windows安装hadoop教程[通俗易懂]
- 搭建hadoop集群的三种方式_hadoop集群部署
- hadoop是什么意思_hadoop三大组件
- Hadoop实战_hadoop 项目实战
- Hadoop——健康检测
- 一文搞懂Hadoop Archive
- 大数据面试题(二):Hadoop的联邦机制核心高频面试题
- Hadoop支持的压缩格式,是否支持split,什么场景下使用,建议收藏
- 史上最详细的Hadoop环境搭建详解大数据
- Hadoop综合练习第十节–HBase安装部署详解大数据
- Hadoop伪分布安装详解(一)大数据
- hadoop 提交程序并监控运行详解大数据
- hadoop join之map side join详解大数据
- Hadoop – Azkaban 作业调度详解大数据
- 高可用Hadoop平台-Oozie工作流之Hadoop调度详解大数据
- reduce hadoop利用MySQL、MapReduce、Hadoop轻松解决大数据问题(mysqlmap)
- Hadoop 核心 – HDFS 分布式文件系统详解
- Redis与Hadoop:让数据变得更加简单(redis与hadoop)
- 实现R与Hadoop联合作业的三种方法
- 十八款Hadoop工具帮你驯服大数据【转】
- Linux系统上安装Hadoop环境讲解(linux安装hadoop)
- Linux搭建Hadoop: 快速搭建大数据科学实验室(linux搭建hadoop)
- Linux下创建Hadoop用户指南(linux创建hadoop用户)
- hadoop单机安装配置教程