hadoop学习笔记7-Azkaban
一.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相关推荐
- Hadoop学习笔记一 简要介绍
Hadoop学习笔记一 简要介绍 这里先大致介绍一下Hadoop. 本文大部分内容都是从官网Hadoop上来的.其中有一篇介绍HDFS的pdf文档,里面对Hadoop介绍的比较全面了.我的这一 ...
- Hadoop学习笔记(1) ——菜鸟入门
Hadoop学习笔记(1) --菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户能够在不了解分布式底层细节的情况下.开发分布式 ...
- Hadoop学习笔记(1)
原文:http://www.cnblogs.com/zjfstudio/p/3859704.html Hadoop学习笔记(1) --菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分 ...
- Hadoop学习笔记—18.Sqoop框架学习
Hadoop学习笔记-18.Sqoop框架学习 一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据 ...
- Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍
Hadoop学习笔记-20.网站日志分析项目案例(一)项目介绍 网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edis ...
- Hadoop学习笔记(8) ——实战 做个倒排索引
Hadoop学习笔记(8) --实战 做个倒排索引 倒排索引是文档检索系统中最常用数据结构.根据单词反过来查在文档中出现的频率,而不是根据文档来,所以称倒排索引(Inverted Index).结构如 ...
- Hadoop学习笔记—4.初识MapReduce
一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个 编程模型 ,用以进行大数据量的计算.对于大 数据量的计算,通常采用的处理手法就是并行计算.但对许多开 ...
- Hadoop学习笔记—11.MapReduce中的排序和分组
Hadoop学习笔记-11.MapReduce中的排序和分组 一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出 ...
- Hadoop学习笔记—15.HBase框架学习(基础知识篇)
Hadoop学习笔记-15.HBase框架学习(基础知识篇) HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase ...
- Hadoop学习笔记—10.Shuffle过程那点事儿
Hadoop学习笔记-10.Shuffle过程那点事儿 一.回顾Reduce阶段三大步骤 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步骤,其中在Reduc ...
最新文章
- python工具-文件及文件夹移动及处理
- ubuntu 下的ftp安装及root身份远程配置
- ciscodk新科目——1Z1-807
- 根据您的命令-命令设计模式
- 【数值分析】基础理论归纳
- Zabbix4.2安装和4.0升级4.2笔记
- LabVIEW之安装队列工具包AMC安装问题解决
- GitHub 标星 8w!这个开源面试总结屌爆了!
- 拓端tecdat|如何用r语言制作交互可视化报告图表
- 证明CLIQUE(团问题)是NP完全
- windows server 系统SERVER服务消失无法共享
- fibonacci数列java大赛_斐波那契数列 java 解法
- matlab窄带水平集,窄带水平集方法
- 教师资格证面试考试详细流程来了
- 信息系统项目管理师-3项目立项管理
- Excel中两个sheet页比较不同值
- 阿里五年测试工程师的一些小建议,让你少走弯路
- oracle调优(1)
- linux中oracle导出dmp,linux下导入导出oracle的dmp文件
- js逆向-知乎最新x-zse-96 逆向源码(2022-09-25更新)
热门文章
- Bandizip下载安装教程
- 第一次团队作业——团队选题报告
- html 免备案,域名没有备案使用cdn(免备案cdn推荐)
- 参考文献格式、论文尾注
- rsync: [sender] write error: Broken pipe (32) 问题排查
- sa是什么职位_解决方案架构师是做什么的:流程,角色描述,责任和成果
- 计算机再带word打不开,电脑word文档打不开怎么办(附:4种解决办法)
- AlphAction编译不通过问题:error: command ‘:/home/yst/cudas/cuda-10.0/bin/nvcc‘ failed with exit status 1
- 体验服官网和平精英维护服务器,和平精英体验服怎么注册?和平精英体验服注册流程...
- 从Solidworks模型到UG制工程图