Azkaban3.x
Azkaban3.x安装部署
三种模式
- solo-server模式:exec进程和web进程为同一个进程,存放元数据的数据库为
H2
- two-server模式:与之前的单机版本类似,exec进程和web进程分开,存放元数据的数据库为
mysql
- multiple-executor模式:exec进程和web进程在不同的机器上,存放元数据的数据库为
mysql
一、solo模式安装
1.克隆项目:git clone https://github.com/azkaban/azkaban.git
2.编译:./gradlew build installDist
3.启动:cd azkaban-solo-server/build/install/azkaban-solo-server; bin/azkaban-solo-start.sh
4.在8081端口查看
5.停止:bin/azkaban-solo-shutdown.sh
二、two-server模式
1 下载。git clone https://github.com/azkaban/azkaban.git
得到文件夹azkaban/,当前版本为3.39.0
2 编译。
在azkaban
目录下执行 :./gradlew distTar
编译结果为:
azkaban-common : 常用工具类。
azkaban-db : 对应的sql脚本
azkaban-hadoop-secutity-plugin : hadoop 有关kerberos插件
azkaban-solo-server: web和executor 一起的项目。
azkaban-web/executor-server:azkaban的 web和executor的server信息
azkaban-spi: azkaban存储接口以及exception类
创建文件夹:mkdir azkaban-3.39
3 拷贝
cp azkaban-exec-server/build/distributions/azkaban-exec-server-3.39.0-17-g7b7833a.tar.gz /opt/modules/azkaban3.39.0/
cp azkaban-web-server/build/distributions/azkaban-web-server-3.39.0-17-g7b7833a.tar.gz /opt/modules/azkaban3.39.0/
cp azkaban-db-3.39.0/build/distributions/azkaban-db-3.39.0-2-gbd9e6e4.tar.gz /azkaban-3.39/
4.解压缩后并重新命名
5.安装mysql
这里直接使用root用户
安装mysql服务器:yum install mysql-server
启动mysql: systemctl start mysqld.service
打开mysql:mysql -uroot -p123456
创建数据库>CREATE DATABASE azkaban
use azkaban
source /azkaban-3.39/azkaban-db-3.39.0-2/create-all-sql-3.39.0-2-gbd9e6e4.sql
6.创建SSL配置
在azkaban-web=*/conf下
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
输入密钥库口令:
密钥库口令太短 - 至少必须为 6 个字符
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]:
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的省/市/自治区名称是什么?
[Unknown]:
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=, OU=, O=, L=, ST=, C=CN是否正确?[否]: Y
7.将azkaban-solo-server-3.39.0下的conf,plugins,sql拷贝到azkaban-exec-server-3.39.0
1>配置 conf/azkaban.properties
修改数据库配置
database.type=mysql
mysql.port=3306
mysql.host=192.168.3.247
mysql.database=azkaban
mysql.user=root
mysql.password=123456
mysql.numconnections=100
2>添加log4j.properties文件
在/conf下新建log4j.properties文件
将
log4j.rootLogger=INFO,C
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.err
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
拷入,同样执行器exec文件下的/conf也需要新建
3>添加mysql驱动
在/azkaban-3.39/azkaban-exec-server-3.39.0-2下新建文件夹 :mkdir extlib
将lib下的mysql链接驱动复制到extlib下
同时需要修改ban-3.39/azkaban-web-server-3.39.0-2下的azkaban.properties,建立extlib文件将mysql驱动拷入
8.启动
注意先启动执行器然后启动web服务器,需要在bin级目录执行,否则汇报找不到配置文件的错误
cd azkaban-exec-server-3.39.0-2
bin/azkaban-executor-start.sh
cd azkaban-web-server-3.39.0-2
bin/azkaban-web-start.sh(后台启动:nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out 2>/tmp/azerr.out &)
常见错误:
1.执行任务时Missing required property 'azkaban.native.lib'
解决方案:azkaban-3.37.0/azkaban-common/src/main/java/azkaban/jobExecutor/ProcessJob.java里
然后重启
2.若mysql数据库链接不上请检查mysql数据库下azkaban数据库是否可以访问,
若无法远程访问请使用root用户登录到mysql数据库
mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';
mysql> GRANT ALL ON azkaban.* to 'azkaban'@'%' IDENTIFIED BY 'azkaban';
配置文件azkaban.properties内容说明:
#Azkaban Personalization Settings azkaban.name=Test #服务器UI名称,用于服务器上方显示的名字 azkaban.label=My Local Azkaban #描述 azkaban.color=#FF3601 #UI颜色 azkaban.default.servlet.path=/index web.resource.dir=web/ #默认根web目录 default.timezone.id=Asia/Shanghai #默认时区,已改为亚洲/上海 默认为美国 #Azkaban UserManager class user.manager.class=azkaban.user.XmlUserManager #用户权限管理默认类 user.manager.xml.file=conf/azkaban-users.xml #用户配置,具体配置参加下文 #Loader for projects executor.global.properties=conf/global.properties # global配置文件所在位置 azkaban.project.dir=projects database.type=mysql #数据库类型 mysql.port=3306 #端口号 mysql.host=localhost #数据库连接IP mysql.database=azkaban #数据库实例名 mysql.user=root #数据库用户名 mysql.password=root #数据库密码 mysql.numconnections=100 # Velocity dev mode velocity.dev.mode=false # Jetty服务器属性. jetty.maxThreads=25 #最大线程数 jetty.ssl.port=8443 #Jetty SSL端口 jetty.port=8081 #Jetty端口 jetty.keystore=keystore #SSL文件名 jetty.password=123456 #SSL文件密码 jetty.keypassword=123456 #Jetty主密码 与 keystore文件相同 jetty.truststore=keystore #SSL文件名 jetty.trustpassword=123456 # SSL文件密码 # 执行服务器属性 executor.port=12321 #执行服务器端口 # 邮件设置 mail.sender=xxxxxxxx@163.com #发送邮箱 mail.host=smtp.163.com #发送邮箱smtp地址 mail.user=xxxxxxxx #发送邮件时显示的名称 mail.password=********** #邮箱密码 job.failure.email=xxxxxxxx@163.com #任务失败时发送邮件的地址 job.success.email=xxxxxxxx@163.com #任务成功时发送邮件的地址 lockdown.create.projects=false cache.directory=cache #缓存目录 |
用户配置(可选)
进入azkaban web服务器conf目录,修改azkaban-users.xml
vi azkaban-users.xml 增加 管理员用户
<azkaban-users> <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" /> <user username="metrics" password="metrics" roles="metrics"/> <user username="admin" password="admin" roles="admin,metrics" /> <role name="admin" permissions="ADMIN" /> <role name="metrics" permissions="METRICS"/> </azkaban-users> |
Azkaban实战
Azkaba内置的任务类型支持command、java、python
Command类型单一job示例
1、创建job描述文件
vi command.job
#command.job type=command command=echo 'hello' |
2、将job资源文件打包成zip文件
zip command.job
3、通过azkaban的web管理平台创建project并上传job压缩包
首先创建project
上传zip包
4、启动执行该job
Command类型多job工作流flow
1、创建有依赖关系的多个job描述
第一个job:foo.job
# foo.job type=command command=echo foo |
第二个job:bar.job依赖foo.job
# bar.job type=command dependencies=foo command=echo bar |
2、将所有job资源文件打到一个zip包中
3、在azkaban的web管理界面创建工程并上传zip包
4、启动工作流flow
HDFS操作任务
1、创建job描述文件
# fs.job type=command command=/home/hadoop/apps/hadoop-2.6.1/bin/hadoop fs -mkdir /azaz |
2、将job资源文件打包成zip文件
3、通过azkaban的web管理平台创建project并上传job压缩包
4、启动执行该job
MAPREDUCE任务
Mr任务依然可以使用command的job类型来执行
1、创建job描述文件,及mr程序jar包(示例中直接使用hadoop自带的examplejar)
# mrwc.job type=command command=/home/hadoop/apps/hadoop-2.6.1/bin/hadoop jar hadoop-mapreduce-examples-2.6.1.jar wordcount /wordcount/input /wordcount/azout |
2、将所有job资源文件打到一个zip包中
3、在azkaban的web管理界面创建工程并上传zip包
4、启动job
HIVE脚本任务
l 创建job描述文件和hive脚本
Hive脚本: test.sql
use default; drop table aztest; create table aztest(id int,name string) row format delimited fields terminated by ','; load data inpath '/aztest/hiveinput' into table aztest; create table azres as select * from aztest; insert overwrite directory '/aztest/hiveoutput' select count(1) from aztest; |
Job描述文件:hivef.job
# hivef.job type=command command=/home/hadoop/apps/hive/bin/hive -f 'test.sql' |
2、将所有job资源文件打到一个zip包中
3、在azkaban的web管理界面创建工程并上传zip包
4、启动job
Azkaban3.x的更多相关文章
- 2.azkaban3.0安装
安装规划安装azkban1.安装配置数据库2.下载安装web server3.安装mulit executor4.安装azkaban插件AZKABAN参数安装出现的问题 安装规划 IP 角色 端口 1 ...
- 【异常】Cannot run program "git" (in directory "/mnt/software/azkaban-3.79.0"): error=2, No such file or directory
1 安装azkaban异常 cloudera-scm@cdh4 azkaban-3.79.0]$ ./gradlew build -x test Parallel execution with con ...
- Azkaban3.81.x部署+坑
一.前提安装 1.1 Java1.8环境搭建 1) 下载jdk1.8并解压: # tar -zxvf jdk-8u201-linux-i586.tar.gz -C /usr/local 2) 添加Ja ...
- Azkaban3.x集群部署(multiple executor mode)
介绍 Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程.Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于 ...
- Azkaban3.X的安装(2018年8月19日最新版本)
参考文章: 1.http://azkaban.github.io/azkaban/docs/latest/ 2.http://blog.csdn.net/gaoqida/article/details ...
- 3.azkaban3.0测试
测试目标 azkaban多executor下flow的分配方式 azkaban可以同时执行的flow\job个数 azkaban单个job最小使用的内存 相关配置 executor最大线程数: exe ...
- azkaban3.90.0部署
1.下载这个网友提供的编译包,自己编的老出错,没弄了 https://blog.csdn.net/logincheck/article/details/110119987 2.将 解压到 /opt/m ...
- 【Azkaban搭建】---Azkaban 3.25.0搭建细则 超实用
一.前述 Azkaban是一个工作流调度工具,因为需要各个任务之间有依赖关系,传统的Crontab 任务已经不能满足. 所以需要建立一套工作流引擎.相比Ooize来说,Azkaban的优势是作为一个客 ...
- 基于Azkaban的任务定时调度实践
本文由云+社区发表 作者:maxluo 一.Azkaban介绍 Azkaban是LinkedIn开源的任务调度框架,类似于JavaEE中的JBPM和Activiti工作流框架. Azkaban功能和特 ...
随机推荐
- Hadoop 集群网络拓扑
- Docker(五)安装Fastdfs
https://blog.csdn.net/qq_37759106/article/details/82981023 有2个提示: 这篇博客nginx开放的80端口, 首先要打开防火墙80的端口: 测 ...
- C#里的应用程序域AppDomain
首先,描述一下AppDomain是什么:当一个程序集被执行时,系统就会自动为其创建一个AppDomain,每一个AppDomain属于某个进程,一个进程内可以有多个AppDomain:每个AppDom ...
- Web前端开发的就业前景怎么样,薪资待遇如何
信息技术的迅速发展,使IT技术者们赶上了一个百年难遇的好机会,尤其是国家出台了“互联网+”的政策后,更是催生了IT行业的就业空间,使其呈现爆发性增长. 如今,微信逐渐成为了大家主要的交流工具,随着各种 ...
- FreeMarker 获取页面appplication、request、session
使用Request里的Attribute值最简单的方法就是直接${AttributeName}或者安全一点:${AttributeName!"default Value"} 1.取 ...
- 玩转Spring Boot 自定义配置、导入XML配置与外部化配置
玩转Spring Boot 自定义配置.导入XML配置与外部化配置 在这里我会全面介绍在Spring Boot里面如何自定义配置,更改Spring Boot默认的配置,以及介绍各配置的优先 ...
- 删除 java代码中所有的注释
删除 java代码中所有的注释.java public class CleanCommons { private static Pattern pattern = Pattern.compile(&q ...
- NOIP模拟 7.01
水灾(sliker.cpp/c/pas) 1000MS 64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY ...
- 将Factory-boy生成的复杂对象转成dict的方法
最近在做接口测试,使用Factory-boy来生成接口对象实例,接着将对象转成dict,最后通过requests发送请求. 对象转成dict,目前知道的方法就是object.__dict__ .这个方 ...
- 虚幻UE4的后处理特效介绍 http://www.52vr.com/thread-31215-1-1.html
转载 虚幻UE4提供了后处理特效的功能,可以实现景深,光溢出,色调调整,饱和度等等.要使用虚幻4的后处理,就一定要用到PostProcessVolumn,这是一种特殊的体积,可以放置在场景中的任何位置 ...