一.Azkaban基础

国内翻译成了阿兹卡班

1.为什么使用azkaban

hadoop大数据处理一般具有延迟性,适合定时调度。而azkaban,就是一个定时调度工具

那为什么不用crontab?

简单的定时你是可以用crontab,那复杂的呢?比如我任务a依赖于任务b,任务b又依赖于任务c,你怎么执行?

所以,azkaban就是一个适用于执行工作流的定时调度系统

2.azkaban执行流程

3.azkaban可以兼容所有版本的hadoop

(反正都是命令执行)type一共就两种,command和javaprocess

二.安装azkaban

前提是,你已经安装了mysql

1.配置webserver

1.1.运行建表sql

在mysql中新建azkaban数据库,运行建表sql

source create-all-sql-2.5.0.sql;

1.2.生成密钥

用于在浏览器上通过https访问

1.3.配置azkaban.properties,修改mysql连接信息,时区,密钥信息

1.4.在xml中配置用户

2.关于executor的配置

与配置webserver相似,配置azkaban.properties,修改mysql连接信息,时区

3.分别启动executor和webserver

踩坑记录  之前版本与视频不一致,我的高版本中没有ssl属性,就算我自己添加进去,启动时候也不读,所以不能ssl访问

4.web访问路径

https://ip:8443/

这个8443端口你是可以在webserver启动日志上最后一行看到的

三.azkaban发送邮件

1.25端口的坑

这是一个坑,我找到了方法但是不想去解决了

2021/02/25 15:02:44.380 +0800 ERROR [Emailer] [Azkaban] Email message send failed
javax.mail.MessagingException: Could not connect to SMTP host: imap.qiye.163.com, port: 25;

日志打印了这个错,我在服务器上telnet确实不通,但是在我电脑本地确实是通的,所以不是邮件服务器的问题。

原因:

我租的阿里云服务器,然后阿里云服务器是禁用25端口的,你想要使用需要提交申请,七个工作日有结果。

我看网上好多说基本上申请了也不会给开通,然后我也不是必须用到他,可能以后都用不到这个,我就没有再去研究。

说一下配置需要注意的地方

扩展:

想让telent命令生效也是需要yum安装依赖包的

457  telnet smtp.qiye.163.com 25 #开始告诉我telnet命令不生效,我还以为linux不支持telent命令
  458   yum install telnet.*
  459  telnet smtp.qiye.163.com 25#

2.在webserver的配置文件中配置邮件发送方

mail.sender=123@qq.com
mail.host=smtp.qq.com
mail.user=123@qq.com
mail.password=Fmb4chLkfvnB25wP#注意这个不是邮箱密码,而是授权码,至于怎么获得授权码,qq和网易不同,自己百度去

3.在页面上配置邮件的接收方

就是点击执行之后出来那个弹框

四.azkaban与多种类型交互

你想在azkaban上运行,那就必须要有.job文件

.job文件的一个属性是type。type又分为两种,command和javaprocess。以下分别举例说明

1.最简单的command型

1.1我创建了一个文件叫1.job  内容如下

type=command
command=echo "xy 1"

1.2将1.job打zip压缩包

 打zip包方式需要注意,直接在当前路径下选中压缩,不要外边再套一层文件夹

1.3通过webserver页面新建project

1.4在project中上传zip压缩包

在上传zip包时,azkaban会校验语法是否有错,如果语法有错,那上传失败

1.5执行

可以选择定时执行也可以选择立即执行

1.6日志查看

2.有依赖关系的工作流

2.1.目标

2.2.编写job文件,增加依赖关系

增加依赖关系是重点

在job文件中增加属性 dependencies=job文件名称

如上图,2和3需要在1执行完在执行,那么2和3就依赖于1.然后4要在2和3执行完再执行,那么4就依赖于2和3.但是最开始的1,谁都不依赖

以下是我的4个job文件

1.job

type=command
command=echo 'xy first'

2.job

type=command
command=echo "xy second"
dependencies=1

3.job

type=command
command=echo "xy third"
dependencies=1

4.job

依赖多个时候用逗号,隔开

type=command
command=echo "xy four"
dependencies=2,3

2.3打zip压缩包

2.4执行结果

这就是前边想实现的效果

2.5查看日志

3. azkaban执行java代码

3.1.需要一个有main方法的类,并且package打成jar包

这是一个现成的特别简单的java程序

https://download.csdn.net/download/qq_35653822/15482966

3.2编写.job文件

.job文件不管什么时候都是必须存在的

type=javaprocess
java.class=com.atguigu.AzkabanTest#类全路径名
classpath=azkabanJob-1.0-SNAPSHOT.jar#可以写绝对路径如/root/java/azkabanJob-1.0-SNAPSHOT.jar
#也可以这样写相对路径,我这是把.job文件和jar包放在同一个路径下了

3.3打zip压缩包

3.4执行

正常执行就行 我这没截图

4.azkaban执行shell脚本

4.1编写shell脚本

由于文化水平不高,我就编写了一个贼简单的

shell.sh

date >> /root/xy/xy.txt

4.2编写.job文件

type=command
command=sh shell.sh#注意需要通过bash或者sh执行这个脚本

4.3打zip压缩包

5.azkaban操作hdfs系统

这个首先要保证hdfs是启动着的

5.1.编写.job文件

type=command
command=hdfs dfs -mkdir azkaban#就直接写hdfs命令就行

5.2打包运行

5.3去hdfs控制台或者通过hdfs命令查看命令是否执行

我这是建立文件夹,我就上控制台上翻一翻就行了

6.azkaban操作mapreduce

这个需要保证hadoop是启动着的

6.1编写.job文件

type=command
command=hadoop jar /root/soft/hadoop/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 2 3

踩坑记录,不要写环境变量${}这种,他不识别

失败日志

6.2上传打包运行

感谢这个死慢的mapreduce,我终于能看到运行中是什么样子了

7.azkaban 操作hive

首先要保证你azkaban的executor所在节点,是可以操作hive命令的

比如我当时的本来hive和azkaban不在一台机器上,然后就把hive文件夹整个scp过来就好了,直接就能运行命令行

7.1hive.sql

我想通过hive -f xxx.sql的方式进行测试,所以写了个hive.sql

drop table if exists test.employeeT;
CREATE  TABLE `test.employeeT`(`dept_no` int,`addr` string,`tel` string)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
load data local inpath '/root/soft/azkaban/test.txt' into table test.employeeT;

7.2.job文件

type=command
command=/root/soft/hive/apache-hive-3.1.2-bin/bin/hive -f hive.sql

7.3打包运行

题外:

这个时候我去yarn控制台上,是看不到运行记录的,后来查到,简单的查询不会涉及的mapreduce 比如我写了一个建表语句  就不会在yarn控制台上看到

7.4运行计算类型的hive sql

将hive.job修改如下

type=command
command=/root/soft/hive/apache-hive-3.1.2-bin/bin/hive -e "select count(*) from test.employeeT"

7.5打包上传运行

查看yarn控制台,这次能看到任务了

五.azkaban参数上传

1.azkaban可以直接在web界面修改文件

2.通过${}传参

我使用的时${paramtest},其中paramtest就是需要上传的参数

3.上传参数

执行时通过key:value形式上传参数

4.输出结果

hadoop学习笔记7-Azkaban相关推荐

  1. Hadoop学习笔记一 简要介绍

    Hadoop学习笔记一 简要介绍 这里先大致介绍一下Hadoop.     本文大部分内容都是从官网Hadoop上来的.其中有一篇介绍HDFS的pdf文档,里面对Hadoop介绍的比较全面了.我的这一 ...

  2. Hadoop学习笔记(1) ——菜鸟入门

     Hadoop学习笔记(1) --菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户能够在不了解分布式底层细节的情况下.开发分布式 ...

  3. Hadoop学习笔记(1)

    原文:http://www.cnblogs.com/zjfstudio/p/3859704.html Hadoop学习笔记(1) --菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分 ...

  4. Hadoop学习笔记—18.Sqoop框架学习

    Hadoop学习笔记-18.Sqoop框架学习 一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据 ...

  5. Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

    Hadoop学习笔记-20.网站日志分析项目案例(一)项目介绍 网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edis ...

  6. Hadoop学习笔记(8) ——实战 做个倒排索引

    Hadoop学习笔记(8) --实战 做个倒排索引 倒排索引是文档检索系统中最常用数据结构.根据单词反过来查在文档中出现的频率,而不是根据文档来,所以称倒排索引(Inverted Index).结构如 ...

  7. Hadoop学习笔记—4.初识MapReduce

    一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个 编程模型 ,用以进行大数据量的计算.对于大 数据量的计算,通常采用的处理手法就是并行计算.但对许多开 ...

  8. Hadoop学习笔记—11.MapReduce中的排序和分组

    Hadoop学习笔记-11.MapReduce中的排序和分组 一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出 ...

  9. Hadoop学习笔记—15.HBase框架学习(基础知识篇)

    Hadoop学习笔记-15.HBase框架学习(基础知识篇) HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase ...

  10. Hadoop学习笔记—10.Shuffle过程那点事儿

    Hadoop学习笔记-10.Shuffle过程那点事儿 一.回顾Reduce阶段三大步骤 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步骤,其中在Reduc ...

最新文章

  1. python工具-文件及文件夹移动及处理
  2. ubuntu 下的ftp安装及root身份远程配置
  3. ciscodk新科目——1Z1-807
  4. 根据您的命令-命令设计模式
  5. 【数值分析】基础理论归纳
  6. Zabbix4.2安装和4.0升级4.2笔记
  7. LabVIEW之安装队列工具包AMC安装问题解决
  8. GitHub 标星 8w!这个开源面试总结屌爆了!
  9. 拓端tecdat|如何用r语言制作交互可视化报告图表
  10. 证明CLIQUE(团问题)是NP完全
  11. windows server 系统SERVER服务消失无法共享
  12. fibonacci数列java大赛_斐波那契数列 java 解法
  13. matlab窄带水平集,窄带水平集方法
  14. 教师资格证面试考试详细流程来了
  15. 信息系统项目管理师-3项目立项管理
  16. Excel中两个sheet页比较不同值
  17. 阿里五年测试工程师的一些小建议,让你少走弯路
  18. oracle调优(1)
  19. linux中oracle导出dmp,linux下导入导出oracle的dmp文件
  20. js逆向-知乎最新x-zse-96 逆向源码(2022-09-25更新)

热门文章

  1. Bandizip下载安装教程
  2. 第一次团队作业——团队选题报告
  3. html 免备案,域名没有备案使用cdn(免备案cdn推荐)
  4. 参考文献格式、论文尾注
  5. rsync: [sender] write error: Broken pipe (32) 问题排查
  6. sa是什么职位_解决方案架构师是做什么的:流程,角色描述,责任和成果
  7. 计算机再带word打不开,电脑word文档打不开怎么办(附:4种解决办法)
  8. AlphAction编译不通过问题:error: command ‘:/home/yst/cudas/cuda-10.0/bin/nvcc‘ failed with exit status 1
  9. 体验服官网和平精英维护服务器,和平精英体验服怎么注册?和平精英体验服注册流程...
  10. 从Solidworks模型到UG制工程图