开发者学堂课程【新电商大数据平台2020最新课程:电商项目之 Azkaban 简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/640/detail/10505
电商项目之 Azkaban 简介
上节讲了 scoop 数据导入,编写了 shell 脚本,因为 hive 出现了问题所以没有进行演示,解决了一下刚刚 scoop 已经导入成功了,跑的就是刚刚写的 scoop 脚本,没有改变。
然后直接执行就可以了,上边是导入成功的,刚刚报错原因是用 Spark 操作 hive 的时候它默认是把 hive 版本给转换了,hive 本身很薄的时候默认值可以每次检测版本,比如说访问的时候用1.2版本访问,Spark 很多时候默认跑1.2会有一个版本检测,会对数据库存的一个版本进行数据修改,所以在使用的时候一定要注意这个点。
上面有个 log ,刚导入时不是 scoop 的问题,导了几个包发现不是缺少一代,后来去单独去读 hive 然后报错,可以看到这个地方原数据在出错:
message Hive Schema version 的2.1,它的 metastore
需要1.2,刚刚登录的是2.1版本,然后它数据库存的是1.2,出现了问题,所以把他的数据库改了一下,然后进入这个数据库,这时进行访问,然后查询一下这个数据是 hive ,里面有一个,数据操作没有了,
在下面有一个 version 版本表,在这里然后进行一个查询,确实是1.2,它的 SCHEME VERSION 确实是1.2,这个时候需要改一下,update 一下,这个表更新一下就可以了,然后我们再执行就可以进去了,进去之后开始执行 scoop 脚本,这样的话我们任务就可以正常跑通。
使用的时候,版本检测最好关掉,这里有个 hive ,然后要加一个版本检测关闭,不然每次版本检测原数据的版本时候会有问题,不让它检测就可以了。
介绍 Azkaban:
它是一个工作流量调度器,在这里准备了 Azkaban 安装包,直接使用,首先看一下安装包放这里,等下直接拉进来,这里应该有,没有就上传一个,等下详细说一下 Azkaban
首先看一下它的官网,找一个 Azkaban ,看能不能访问,记住 Azkanban 官网,用小写的进行访问,创建一个 word,
市面上有的会用到的开源流调度器: oozie , Azkaban , airflow ,通过这种工作调度器来调度任务,形成一个状网接到对应的工作流调度器上进行执行,Azkanban 这是它开源的,然后支持 WeBUI 界面,配置简单,脚本配置简单,区别在于, Azkaban 本身的版本区别,进来之后点首页。
Document 3.0的介绍:
Azkaban 的下载需要注意:
1. 没有完整的编译好的安装包,全部是 GitHub 上面的源码包,下载下来后,需要自己自行编译,进行安装。
它本身没有任何编译好的安装包,需要在 GitHub 上下载 UR 包,下载下来后选择自己可用的版本进行自行的编译,不过这个编译的过程比较慢,所以这里的这个包是提前安装好的,直接去使用就可以了,把它进行安装。
2.这里边还分为 Web 可视化界面和 Exec 执行器
一个是执行器一个是界面,Web 界面主要是配置到它的 WebUI,主要是将任务提交上去然后进行执行。
执行器要有一个 Azkaban 的数据库,主要是放执行的源数据,比如说执行多少次,执行任务的……,还有存放你的用户密码,这个执行器是主要执行任务的一个组件,这两个缺一不可,都需要进行安装,看一下打开情况。
Open-source Workflow Manager 它是开源的一个工作流调度器,这是它的官网,它也支持多任务调度。
多任务:
支持版本依赖性的调度方式,依赖一定关系的,比如说先执行哪个,后执行哪个,再执行哪个,有一个顺序, Azkaban 也是一个按顺序执行,如果上一个执行失败,下一个将不会执行,它就会报错,比较适用于示范的一个脚本流度,非常非常适用。
3、Azkaban 轻量形调度器,相比较 Oozie 来说操作更容易,使用更简单,但是功能要稍少一些
一般做任务调度正常调度就行了内部可以配置定时任务,支持定时脚本以上是几个特点
它支持 Hadoop 的任务调度,里面支持 Web UI 界面,下面也还有它的一些特性,不过多进行介绍,它也支持多任务的一些调度
网络缓慢所以也有一定的限制,本来想看一些 Document 的一些介绍,然后点击 Downloads ,之后会跳到下载页面: github 。
然后提供一些下载的资源,版本更新到3.8,三版本和二版本有一定的区别:三版本任务支持二版本,二版本调度方式是一种 job 调度方式,三版本调度适用于 Flow 文件进行调度。
4、.Azkaban2.X 版本支持 job 调度方式
Azkaban3.X 版本支持 Flow 调度方式
演示下两种调度方式:
job 开始然后 Flow
现在都是用三版本调度方式进行调度,二版本比较少,学习的时候主要以三版本为主,二版本为辅
看一下它的版本,下载的都是 GitHub 源码包,有 tar 给的源码包,不是 tar 给的,是 tar 包,还有个 zip 包,这两个包都可以进行下载,不过刚刚没点进去,看一下 Azkaban 下载, download ,点这里,Rekeases ,看一下历史的一个版本,百度上有许多资料,可以依据需要去搜,二点几版本就不要去安装了,因为二点几已经过时了,现在都用三了。
而且 Azkaban 已经更新到3.84了,要到四了,可能还会有一个更大的更新,用二的话老了一些,不太会满足于现状,这里有一个 tar 包,还有一个 zip 包,Source code ,都是一个源码,
下面可以下一页,这里的包是3.56,编辑好的,之前开始用它编译的时候就是3.56就没有去下载最新的,因为三的版本区别不是很大,除非是二,区别稍稍有点大,这里是三,对版本没有过多的限制,只要是三就可以,不管是最新的3.84还是3.2几,还有3.4几,3.5几,这都无所谓,因为它是一个版本系列的,都是一样的,这里3.7,下载的时候可以看到都是源码,都需要编译,所以说在使用的时候就不用做那么多麻烦的事情了。
常见的工作流调度器:Azkaban 、 Oozie 、airflow
airflow 是一种比较好的编译器
关于 Azkaban 的简介,它是一个工具没有很多的工内部原理,只是一个使用。