Azkaban工作流调度二、 工作流1 工作流产生背景工作流Workflow指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流解决的主要问题是为了实现某个业务目标利用计算机软件在多个参与者之间按某种预定规则自动传递文档、信息或者任务。一个完整的数据分析系统通常都是由多个前后依赖的模块组合构成的数据采集、数据预处理、数据分析、数据展示等。各个模块单元之间存在时间先后依赖关系且存在着周期性重复。为了很好地组织起这样的复杂执行计划需要一个工作流调度系统来调度执行。2 工作流调度实现方式简单的任务调度直接使用linux的crontab来定义,但是缺点也是比较明显无法设置依赖。复杂的任务调度自主开发调度平台使用开源调度系统比如azkaban、Apache Oozie、Cascading、Hamake等。其中知名度比较高的是Apache Oozie但是其配置工作流的过程是编写大量的XML配置而且代码复杂度比较高不易于二次开发。3 工作流调度工具之间对比下面的表格对四种hadoop工作流调度器的关键特性进行了比较尽管这些工作流调度器能够解决的需求场景基本一致但在设计理念目标用户应用场景等方面还是存在显著的区别在做技术选型的时候可以提供参考特性HamakeOozieAzkabanCascading工作流描述语言XMLXML (xPDL based)text file with key/value pairsJava API依赖机制data-drivenexplicitexplicitexplicit是否要web容器NoYesYesNo进度跟踪console/log messagesweb pageweb pageJava APIHadoop job调度支持noyesyesyes运行模式command line utilitydaemondaemonAPIPig支持yesyesyesyes事件通知nononoyes需要安装noyesyesno支持的hadoop版本0.180.20currently unknown0.18重试支持noworkflownode evelyesyes运行任意命令yesyesyesyesAmazon EMR支持yesnocurrently unknownyes三、 Azkaban调度器1 Azkaban介绍Azkaban是由linkedin领英公司推出的一个批量工作流任务调度器用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系并提供一个易于使用的web用户界面维护和跟踪你的工作流。[外链图片转存失败(img-9nFEfSH0-1567312678045)(assets/1566635718111.png)]Azkaban功能特点· 提供功能清晰简单易用的Web UI界面· 提供job配置文件快速建立任务和任务之间的依赖关系· 提供模块化和可插拔的插件机制原生支持command、Java、Hive、Pig、Hadoop· 基于Java开发代码结构清晰易于二次开发2 Azkaban原理架构[外链图片转存失败(img-PWq5FLE2-1567312678046)(assets/1566635750010.png)]mysql服务器: 存储元数据如项目名称、项目描述、项目权限、任务状态、SLA规则等AzkabanWebServer:对外提供web服务使用户可以通过web页面管理。职责包括项目管理、权限授权、任务调度、监控executor。AzkabanExecutorServer:负责具体的工作流的提交、执行。3 Azkaban三种部署模式3.1 solo server mode该模式中webServer和executorServer运行在同一个进程中进程名是AzkabanSingleServer。使用自带的H2数据库。这种模式包含Azkaban的所有特性但一般用来学习和测试。3.2 two-server mode该模式使用MySQL数据库 Web Server和Executor Server运行在不同的进程中。3.3 multiple-executor mode该模式使用MySQL数据库 Web Server和Executor Server运行在不同的机器中。且有多个Executor Server。该模式适用于大规模应用。4 Azkaban源码编译Azkaban3.x在安装前需要自己编译成二进制包。并且提前安装好Maven、Ant、Node等软件具体请参考附件资料4.1 编译环境yuminstall–ygityuminstall–y gcc-c4.2 下载源码解压wgethttps://github.com/azkaban/azkaban/archive/3.51.0.tar.gztar-zxvf 3.51.0.tar.gzcd./azkaban-3.51.0/4.3 编译源码./gradlew build installDist -xtestGradle是一个基于Apache Ant和Apache Maven的项目自动化构建工具。-x test 跳过测试。注意联网下载jar可能会失败、慢4.4 编译后安装包路径编译成功之后就可以在指定的路径下取得对应的安装包了。#solo-server模式安装包路径azkaban-solo-server/build/distributions/#two-server模式和multiple-executor模式web-server安装包路径azkaban-web-server/build/distributions/#two-server模式和multiple-executor模式exec-server安装包路径azkaban-exec-server/build/distributions/azkaban-db/build/distributions/ 数据库相关安装包路径四、 Azkaban安装部署1 solo-server模式部署1.1 节点规划HOST角色node-1Web Server和Executor Server同一进程1.2 解压配置mkdir/export/servers/azkabantar-zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz –C /export/servers/azkaban/ vim conf/azkaban.properties default.timezone.idAsia/Shanghai#修改时区vim plugins/jobtypes/commonprivate.properties#添加memCheck.enabledfalse#azkaban默认需要3G的内存剩余内存不足则会报异常1.3 启动验证cdazkaban-solo-server-0.1.0-SNAPSHOT/ bin/start-solo.sh#注:启动/关闭必须进到azkaban-solo-server-0.1.0-SNAPSHOT/目录下。AzkabanSingleServer(对于Azkaban solo‐server模式Exec Server和Web Server在同一个进程中)1.4 登录web页面访问Web Serverhttp://node-1:8081/ 默认用户名密码azkaban1.5 初体验测试http://node-1:8081/index登录Create ProjectUpload zip包 execute flow执行一步步操作即可。创建两个文件one.job two.job,内容如下打包成zip包。catone.job typecommand commandechothis is job onecattwo.job typecommand dependenciesone commandechothis is job two创建工程上传zip压缩包execute执行执行页面执行结果查看2 two-server模式部署2.1 节点规划HOST角色node-1MySQLNode-2web‐server和exec‐server不同进程2.2 mysql配置初始化node-1mkdir/export/servers/azkabantar-zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz -C /export/servers/azkaban/Mysql上创建对应的库、增加权限、创建表mysqlCREATE DATABASE azkaban_two_server;#创建数据库mysqluse azkaban_two_server;mysqlsource/export/servers/azkaban/azkaban-db-0.1.0-SNAPSHOT/create-all-sql-0.1.0-SNAPSHOT.sql;#加载初始化sql创建表2.3 web-server服务器配置node-2:mkdir/export/servers/azkabantar-zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C /export/servers/azkaban/tar-zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C /export/servers/azkaban/生成ssl证书keytool -keystore keystore -alias jetty -genkey -keyalg RSA运行此命令后,会提示输入当前生成keystore的密码及相应信息,输入的密码请记住(所有密码统一以123456输入)。完成上述工作后,将在当前目录生成keystore证书文件,将keystore拷贝到 azkaban web服务器根目录中。如: cp keystore azkaban-web-server-0.1.0-SNAPSHOT/配置conf/azkaban.properties# Azkaban Personalization Settingsazkaban.nameTest azkaban.labelMy Local Azkaban azkaban.color#FF3601azkaban.default.servlet.path/index web.resource.dirweb/ default.timezone.idAsia/Shanghai# 时区注意后面不要有空格# Azkaban UserManager classuser.manager.classazkaban.user.XmlUserManager user.manager.xml.fileconf/azkaban-users.xml# Azkaban Jetty server properties. 开启使用ssl 并且知道端口jetty.use.ssltrue jetty.ssl.port8443 jetty.maxThreads25# Azkaban Executor settings 指定本机Executor的运行端口executor.hostlocalhost executor.port12321# KeyStore for SSL ssl相关配置 注意密码和证书路径jetty.keystorekeystore jetty.password123456 jetty.keypassword123456 jetty.truststorekeystore jetty.trustpassword123456# Azkaban mysql settings by default. Users should configure their own username and password.database.typemysql mysql.port3306 mysql.hostnode01 mysql.databaseazkaban_two_server mysql.userroot mysql.password123456 mysql.numconnections100#Multiple Executor 设置为falseazkaban.use.multiple.executorstrue#azkaban.executorselector.filtersStaticRemainingFlowSize,MinimumFreeMemory,CpuStatusazkaban.executorselector.comparator.NumberOfAssignedFlowComparator1 azkaban.executorselector.comparator.Memory1 azkaban.executorselector.comparator.LastDispatched1 azkaban.executorselector.comparator.CpuUsage1添加azkaban.native.libfalse 和 execute.as.userfalse属性mkdir-p plugins/jobtypes vim commonprivate.properties azkaban.native.libfalse execute.as.userfalse memCheck.enabledfalse2.4 exec-server服务器配置配置conf/azkaban.properties# Azkaban Personalization Settingsazkaban.nameTest azkaban.labelMy Local Azkaban azkaban.color#FF3601azkaban.default.servlet.path/index web.resource.dirweb/ default.timezone.idAsia/Shanghai# Azkaban UserManager classuser.manager.classazkaban.user.XmlUserManager user.manager.xml.fileconf/azkaban-users.xml# Loader for projectsexecutor.global.propertiesconf/global.properties azkaban.project.dirprojects# Where the Azkaban web server is locatedazkaban.webserver.urlhttps://node02:8443# Azkaban mysql settings by default. Users should configure their own username and password.database.typemysql mysql.port3306 mysql.hostnode01 mysql.databaseazkaban_two_server mysql.userroot mysql.password123456 mysql.numconnections100# Azkaban Executor settingsexecutor.maxThreads50 executor.port12321 executor.flow.threads302.5 集群启动先启动exec-server再启动web-server。启动webServer之后进程失败消失可通过安装包根目录下对应启动日志进行排查。需要手动激活executorcd/export/servers/azkaban/execservercurl-Gnode02:$(./executor.port)/executor?actionactivateecho然后重新启动webServer就可以了。3 multiple-executor模式部署multiple-executor模式是多个executor Server分布在不同服务器上只需要将azkaban-exec-server安装包拷贝到不同机器上即可组成分布式。3.1 节点规划HOST角色Node-1mysqlNode-2web-server、exec-serverNode-3exec-server3.2 scp executor server安装包到node-3启动之后需要手动激活executorcd/export/servers/azkaban/execservercurl-Gnode-3:$(./executor.port)/executor?actionactivateecho五、 Azkaban使用实战1 shell command调度创建job描述文件vicommand.job#command.jobtypecommand commandechohello将job资源文件打包成zip文件zipcommand.job通过azkaban的web管理平台创建project并上传job压缩包首先创建Project上传zip包启动执行该job2 job依赖调度创建有依赖关系的多个job描述第一个jobfoo.job# foo.jobtypecommand commandecho foo第二个jobbar.job依赖foo.job# bar.jobtypecommand dependenciesfoo commandecho bar将所有job资源文件打到一个zip包中在azkaban的web管理界面创建工程并上传zip包启动工作流flow3 HDFS任务调度创建job描述文件# fs.jobtypecommand command/home/hadoop/apps/hadoop-2.6.1/bin/hadoop fs -mkdir /azaz将job资源文件打包成zip文件通过azkaban的web管理平台创建project并上传job压缩包启动执行该job4 MAPREDUCE任务调度mr任务依然可以使用command的job类型来执行创建job描述文件及mr程序jar包示例中直接使用hadoop自带的example jar# mrwc.jobtypecommand command/home/hadoop/apps/hadoop-2.6.1/bin/hadoop jar hadoop-mapreduce-examples-2.6.1.jar wordcount /wordcount/input /wordcount/azout将所有job资源文件打到一个zip包中在azkaban的web管理界面创建工程并上传zip包启动job5 HIVE脚本任务调度创建job描述文件和hive脚本Hive脚本 test.sqlusedefault;droptableaztest;createtableaztest(idint,name string)rowformat delimitedfieldsterminatedby,;loaddatainpath/aztest/hiveinputintotableaztest;createtableazresasselect*fromaztest;insertoverwrite directory/aztest/hiveoutputselectcount(1)fromaztest;Job描述文件hivef.job# hivef.jobtypecommand command/home/hadoop/apps/hive/bin/hive -ftest.sql将所有job资源文件打到一个zip包中创建工程并上传zip包,启动jobtype的类型有commandLinux shell命令行任务gobblin通用数据采集工具hadoopJava运行hadoopMR任务java原生java任务hive支持执行hiveSQLpigpig脚本语言sparkspark任务hdfsToTeradata把数据从hdfs导入TeradatateradataToHdfs把数据从Teradata导入hdfs最常用的是command使用它没错了6 定时任务调度除了手动立即执行工作流任务外azkaban也支持配置定时任务调度。开启方式如下首页选择待处理的project上述图片中选择左边schedule表示配置定时调度信息选择右边execute表示立即执行工作流任务。
AzKaban
Azkaban工作流调度二、 工作流1 工作流产生背景工作流Workflow指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流解决的主要问题是为了实现某个业务目标利用计算机软件在多个参与者之间按某种预定规则自动传递文档、信息或者任务。一个完整的数据分析系统通常都是由多个前后依赖的模块组合构成的数据采集、数据预处理、数据分析、数据展示等。各个模块单元之间存在时间先后依赖关系且存在着周期性重复。为了很好地组织起这样的复杂执行计划需要一个工作流调度系统来调度执行。2 工作流调度实现方式简单的任务调度直接使用linux的crontab来定义,但是缺点也是比较明显无法设置依赖。复杂的任务调度自主开发调度平台使用开源调度系统比如azkaban、Apache Oozie、Cascading、Hamake等。其中知名度比较高的是Apache Oozie但是其配置工作流的过程是编写大量的XML配置而且代码复杂度比较高不易于二次开发。3 工作流调度工具之间对比下面的表格对四种hadoop工作流调度器的关键特性进行了比较尽管这些工作流调度器能够解决的需求场景基本一致但在设计理念目标用户应用场景等方面还是存在显著的区别在做技术选型的时候可以提供参考特性HamakeOozieAzkabanCascading工作流描述语言XMLXML (xPDL based)text file with key/value pairsJava API依赖机制data-drivenexplicitexplicitexplicit是否要web容器NoYesYesNo进度跟踪console/log messagesweb pageweb pageJava APIHadoop job调度支持noyesyesyes运行模式command line utilitydaemondaemonAPIPig支持yesyesyesyes事件通知nononoyes需要安装noyesyesno支持的hadoop版本0.180.20currently unknown0.18重试支持noworkflownode evelyesyes运行任意命令yesyesyesyesAmazon EMR支持yesnocurrently unknownyes三、 Azkaban调度器1 Azkaban介绍Azkaban是由linkedin领英公司推出的一个批量工作流任务调度器用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系并提供一个易于使用的web用户界面维护和跟踪你的工作流。[外链图片转存失败(img-9nFEfSH0-1567312678045)(assets/1566635718111.png)]Azkaban功能特点· 提供功能清晰简单易用的Web UI界面· 提供job配置文件快速建立任务和任务之间的依赖关系· 提供模块化和可插拔的插件机制原生支持command、Java、Hive、Pig、Hadoop· 基于Java开发代码结构清晰易于二次开发2 Azkaban原理架构[外链图片转存失败(img-PWq5FLE2-1567312678046)(assets/1566635750010.png)]mysql服务器: 存储元数据如项目名称、项目描述、项目权限、任务状态、SLA规则等AzkabanWebServer:对外提供web服务使用户可以通过web页面管理。职责包括项目管理、权限授权、任务调度、监控executor。AzkabanExecutorServer:负责具体的工作流的提交、执行。3 Azkaban三种部署模式3.1 solo server mode该模式中webServer和executorServer运行在同一个进程中进程名是AzkabanSingleServer。使用自带的H2数据库。这种模式包含Azkaban的所有特性但一般用来学习和测试。3.2 two-server mode该模式使用MySQL数据库 Web Server和Executor Server运行在不同的进程中。3.3 multiple-executor mode该模式使用MySQL数据库 Web Server和Executor Server运行在不同的机器中。且有多个Executor Server。该模式适用于大规模应用。4 Azkaban源码编译Azkaban3.x在安装前需要自己编译成二进制包。并且提前安装好Maven、Ant、Node等软件具体请参考附件资料4.1 编译环境yuminstall–ygityuminstall–y gcc-c4.2 下载源码解压wgethttps://github.com/azkaban/azkaban/archive/3.51.0.tar.gztar-zxvf 3.51.0.tar.gzcd./azkaban-3.51.0/4.3 编译源码./gradlew build installDist -xtestGradle是一个基于Apache Ant和Apache Maven的项目自动化构建工具。-x test 跳过测试。注意联网下载jar可能会失败、慢4.4 编译后安装包路径编译成功之后就可以在指定的路径下取得对应的安装包了。#solo-server模式安装包路径azkaban-solo-server/build/distributions/#two-server模式和multiple-executor模式web-server安装包路径azkaban-web-server/build/distributions/#two-server模式和multiple-executor模式exec-server安装包路径azkaban-exec-server/build/distributions/azkaban-db/build/distributions/ 数据库相关安装包路径四、 Azkaban安装部署1 solo-server模式部署1.1 节点规划HOST角色node-1Web Server和Executor Server同一进程1.2 解压配置mkdir/export/servers/azkabantar-zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz –C /export/servers/azkaban/ vim conf/azkaban.properties default.timezone.idAsia/Shanghai#修改时区vim plugins/jobtypes/commonprivate.properties#添加memCheck.enabledfalse#azkaban默认需要3G的内存剩余内存不足则会报异常1.3 启动验证cdazkaban-solo-server-0.1.0-SNAPSHOT/ bin/start-solo.sh#注:启动/关闭必须进到azkaban-solo-server-0.1.0-SNAPSHOT/目录下。AzkabanSingleServer(对于Azkaban solo‐server模式Exec Server和Web Server在同一个进程中)1.4 登录web页面访问Web Serverhttp://node-1:8081/ 默认用户名密码azkaban1.5 初体验测试http://node-1:8081/index登录Create ProjectUpload zip包 execute flow执行一步步操作即可。创建两个文件one.job two.job,内容如下打包成zip包。catone.job typecommand commandechothis is job onecattwo.job typecommand dependenciesone commandechothis is job two创建工程上传zip压缩包execute执行执行页面执行结果查看2 two-server模式部署2.1 节点规划HOST角色node-1MySQLNode-2web‐server和exec‐server不同进程2.2 mysql配置初始化node-1mkdir/export/servers/azkabantar-zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz -C /export/servers/azkaban/Mysql上创建对应的库、增加权限、创建表mysqlCREATE DATABASE azkaban_two_server;#创建数据库mysqluse azkaban_two_server;mysqlsource/export/servers/azkaban/azkaban-db-0.1.0-SNAPSHOT/create-all-sql-0.1.0-SNAPSHOT.sql;#加载初始化sql创建表2.3 web-server服务器配置node-2:mkdir/export/servers/azkabantar-zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C /export/servers/azkaban/tar-zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C /export/servers/azkaban/生成ssl证书keytool -keystore keystore -alias jetty -genkey -keyalg RSA运行此命令后,会提示输入当前生成keystore的密码及相应信息,输入的密码请记住(所有密码统一以123456输入)。完成上述工作后,将在当前目录生成keystore证书文件,将keystore拷贝到 azkaban web服务器根目录中。如: cp keystore azkaban-web-server-0.1.0-SNAPSHOT/配置conf/azkaban.properties# Azkaban Personalization Settingsazkaban.nameTest azkaban.labelMy Local Azkaban azkaban.color#FF3601azkaban.default.servlet.path/index web.resource.dirweb/ default.timezone.idAsia/Shanghai# 时区注意后面不要有空格# Azkaban UserManager classuser.manager.classazkaban.user.XmlUserManager user.manager.xml.fileconf/azkaban-users.xml# Azkaban Jetty server properties. 开启使用ssl 并且知道端口jetty.use.ssltrue jetty.ssl.port8443 jetty.maxThreads25# Azkaban Executor settings 指定本机Executor的运行端口executor.hostlocalhost executor.port12321# KeyStore for SSL ssl相关配置 注意密码和证书路径jetty.keystorekeystore jetty.password123456 jetty.keypassword123456 jetty.truststorekeystore jetty.trustpassword123456# Azkaban mysql settings by default. Users should configure their own username and password.database.typemysql mysql.port3306 mysql.hostnode01 mysql.databaseazkaban_two_server mysql.userroot mysql.password123456 mysql.numconnections100#Multiple Executor 设置为falseazkaban.use.multiple.executorstrue#azkaban.executorselector.filtersStaticRemainingFlowSize,MinimumFreeMemory,CpuStatusazkaban.executorselector.comparator.NumberOfAssignedFlowComparator1 azkaban.executorselector.comparator.Memory1 azkaban.executorselector.comparator.LastDispatched1 azkaban.executorselector.comparator.CpuUsage1添加azkaban.native.libfalse 和 execute.as.userfalse属性mkdir-p plugins/jobtypes vim commonprivate.properties azkaban.native.libfalse execute.as.userfalse memCheck.enabledfalse2.4 exec-server服务器配置配置conf/azkaban.properties# Azkaban Personalization Settingsazkaban.nameTest azkaban.labelMy Local Azkaban azkaban.color#FF3601azkaban.default.servlet.path/index web.resource.dirweb/ default.timezone.idAsia/Shanghai# Azkaban UserManager classuser.manager.classazkaban.user.XmlUserManager user.manager.xml.fileconf/azkaban-users.xml# Loader for projectsexecutor.global.propertiesconf/global.properties azkaban.project.dirprojects# Where the Azkaban web server is locatedazkaban.webserver.urlhttps://node02:8443# Azkaban mysql settings by default. Users should configure their own username and password.database.typemysql mysql.port3306 mysql.hostnode01 mysql.databaseazkaban_two_server mysql.userroot mysql.password123456 mysql.numconnections100# Azkaban Executor settingsexecutor.maxThreads50 executor.port12321 executor.flow.threads302.5 集群启动先启动exec-server再启动web-server。启动webServer之后进程失败消失可通过安装包根目录下对应启动日志进行排查。需要手动激活executorcd/export/servers/azkaban/execservercurl-Gnode02:$(./executor.port)/executor?actionactivateecho然后重新启动webServer就可以了。3 multiple-executor模式部署multiple-executor模式是多个executor Server分布在不同服务器上只需要将azkaban-exec-server安装包拷贝到不同机器上即可组成分布式。3.1 节点规划HOST角色Node-1mysqlNode-2web-server、exec-serverNode-3exec-server3.2 scp executor server安装包到node-3启动之后需要手动激活executorcd/export/servers/azkaban/execservercurl-Gnode-3:$(./executor.port)/executor?actionactivateecho五、 Azkaban使用实战1 shell command调度创建job描述文件vicommand.job#command.jobtypecommand commandechohello将job资源文件打包成zip文件zipcommand.job通过azkaban的web管理平台创建project并上传job压缩包首先创建Project上传zip包启动执行该job2 job依赖调度创建有依赖关系的多个job描述第一个jobfoo.job# foo.jobtypecommand commandecho foo第二个jobbar.job依赖foo.job# bar.jobtypecommand dependenciesfoo commandecho bar将所有job资源文件打到一个zip包中在azkaban的web管理界面创建工程并上传zip包启动工作流flow3 HDFS任务调度创建job描述文件# fs.jobtypecommand command/home/hadoop/apps/hadoop-2.6.1/bin/hadoop fs -mkdir /azaz将job资源文件打包成zip文件通过azkaban的web管理平台创建project并上传job压缩包启动执行该job4 MAPREDUCE任务调度mr任务依然可以使用command的job类型来执行创建job描述文件及mr程序jar包示例中直接使用hadoop自带的example jar# mrwc.jobtypecommand command/home/hadoop/apps/hadoop-2.6.1/bin/hadoop jar hadoop-mapreduce-examples-2.6.1.jar wordcount /wordcount/input /wordcount/azout将所有job资源文件打到一个zip包中在azkaban的web管理界面创建工程并上传zip包启动job5 HIVE脚本任务调度创建job描述文件和hive脚本Hive脚本 test.sqlusedefault;droptableaztest;createtableaztest(idint,name string)rowformat delimitedfieldsterminatedby,;loaddatainpath/aztest/hiveinputintotableaztest;createtableazresasselect*fromaztest;insertoverwrite directory/aztest/hiveoutputselectcount(1)fromaztest;Job描述文件hivef.job# hivef.jobtypecommand command/home/hadoop/apps/hive/bin/hive -ftest.sql将所有job资源文件打到一个zip包中创建工程并上传zip包,启动jobtype的类型有commandLinux shell命令行任务gobblin通用数据采集工具hadoopJava运行hadoopMR任务java原生java任务hive支持执行hiveSQLpigpig脚本语言sparkspark任务hdfsToTeradata把数据从hdfs导入TeradatateradataToHdfs把数据从Teradata导入hdfs最常用的是command使用它没错了6 定时任务调度除了手动立即执行工作流任务外azkaban也支持配置定时任务调度。开启方式如下首页选择待处理的project上述图片中选择左边schedule表示配置定时调度信息选择右边execute表示立即执行工作流任务。