Azkaban实战:命令行、HDFS、MAPREDUCE与HIVE任务详解

需积分: 9 20 下载量 39 浏览量 更新于2024-09-08 收藏 108KB DOCX 举报
Azkaban实战是一份深入介绍Azkaban这款开源工作流管理系统在实际应用中的教程,它通过五个不同的场景来演示Azkaban的工作原理和使用方法。Azkaban是一个基于Java的工具,主要用于自动化工作流程的调度和监控,特别适用于大数据处理环境,如Hadoop生态系统中的HDFS、MAPREDUCE和Hive。 1. **Command类型任务**: - Command类型的任务是最基础的,例如`vicommand.job`示例中,用户需要创建job描述文件,定义job执行的命令(如echo命令)并在Azkaban web管理平台上创建项目并上传包含job资源的zip文件。然后,通过Azkaban启动执行这些命令型job。 - 对于多job工作流,例如`foo.job`和`bar.job`的依赖关系,用户需要确保它们之间的顺序执行,并将所有job资源打包成一个zip文件后上传到Azkaban。 2. **HDFS操作任务**: - Azkaban支持HDFS操作,用户创建job描述文件,通常包括与HDFS交互的命令,比如读写文件,然后将这些资源打包到zip包中,通过Azkaban平台创建项目并上传,最后启动job执行HDFS操作。 3. **MAPREDUCE任务**: - MapReduce任务同样支持command类型的job,创建job描述文件时需要附带mr程序jar包(如Hadoop自带的examplejar),并将资源打包上传到Azkaban,然后启动job运行MR作业。 4. **HIVE脚本任务**: - 用户可以编写Hive脚本(如test.sql)并将其与Hive job描述文件(如hivef.job)一起打包,通过Azkaban进行Hive查询作业的调度和执行。 5. **参数传递与子流程**: - Azkaban提供了灵活的参数传递机制,允许用户传递配置文件(如xx.properties)或在UI界面输入参数。同时,支持创建多个job之间的子流程,比如`command1.job`依赖`command1`的结果,确保任务之间的逻辑顺序。 Azkaban实战通过具体的实例展示了如何利用Azkaban的功能来管理和执行各种任务,包括单个命令执行、依赖关系的处理、与大数据组件的集成以及参数传递和子流程的设计,有助于用户更好地理解和掌握Azkaban在实际工作中的应用场景和操作流程。
2020-05-22 上传
版本:3.38,解压后,配置自己的环境可直接用 azkaban-3.38.0\azkaban-db azkaban-3.38.0\azkaban-exec-server azkaban-3.38.0\azkaban-solo-server azkaban-3.38.0\azkaban-web-server ----------------后续步骤------------------ 1.创建数据库并导入基本数据 (1)创建数据库 create database azkaban; (2)mysql授权 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH PRIVILEGES; (3)导入数据 use azkaban; source /opt/azkaban-3.38.0/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql 2. ssl配置 cd /opt/azkaban-3.38.0\azkaban-web-server keytool -keystore keystore -alias jetty -genkey -keyalg RSA 输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? [Unknown]: xue 您的组织单位名称是什么? [Unknown]: xue 您的组织名称是什么? [Unknown]: xue 您所在的城市或区域名称是什么? [Unknown]: beijing 您所在的省/市/自治区名称是什么? [Unknown]: beijing 该单位的双字母国家/地区代码是什么? [Unknown]: CN CN=xue, OU=xue, O=xue, L=beijing, ST=beijing, C=CN是否正确? [否]: Y 输入 的密钥口令 (如果和密钥库口令相同, 按回车): 3.修改azkaban-exec-server下配置文件,引入mysql的依赖包 (1)将azkaban-solo-server下conf、plugins、sql目录复制到azkaban-exec-server目录下 cd azkaban-3.38.0/azkaban-solo-server/ cp -a ./conf ./plugins ./sql ../azkaban-exec-server (2)修改azkaban-exec-server/conf/的azkaban.properties文件 # Azkaban Personalization Settings azkaban.name=master azkaban.label=My Local Azkaban azkaban.color=#FF3601 azkaban.default.servlet.path=/index web.resource.dir=web/ #修改时区 default.timezone.id=Asia/Shanghai # Azkaban UserManager class user.manager.class=azkaban.user.XmlUserManager #修改为绝对路径,否则可能找不到 user.manager.xml.file=/opt/azkaban-3.38.0/azkaban-exec-server/conf/azkaban-users.xml # Loader for projects executor.global.properties=/opt/azkaban-3.38.0/azkaban-exec-server/conf/global.properties azkaban.project.dir=projects database.type=mysql mysql.port=3306 mysql.host=master mysql.database=azkaban mysql.user=root mysql.password=123456 mysql.numconnections=100 (其他默认) 4. 在conf目录下新建log4j.properties文件 [root@master azkaban-exec-server]# vim conf/log4j.properties 复制以下内容到log4j文件: log4j.rootLogger=INFO, Console log4j.logger.azkaban=INFO, server log