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

设置开机启动:chkconfig mysqld on 
启动mysql服务:service mysqld start
设置root的初试密码:mysqladmin -u root password '123456'

启动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的更多相关文章

  1. 2.azkaban3.0安装

    安装规划安装azkban1.安装配置数据库2.下载安装web server3.安装mulit executor4.安装azkaban插件AZKABAN参数安装出现的问题 安装规划 IP 角色 端口 1 ...

  2. 【异常】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 ...

  3. Azkaban3.81.x部署+坑

    一.前提安装 1.1 Java1.8环境搭建 1) 下载jdk1.8并解压: # tar -zxvf jdk-8u201-linux-i586.tar.gz -C /usr/local 2) 添加Ja ...

  4. Azkaban3.x集群部署(multiple executor mode)

    介绍 Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程.Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于 ...

  5. Azkaban3.X的安装(2018年8月19日最新版本)

    参考文章: 1.http://azkaban.github.io/azkaban/docs/latest/ 2.http://blog.csdn.net/gaoqida/article/details ...

  6. 3.azkaban3.0测试

    测试目标 azkaban多executor下flow的分配方式 azkaban可以同时执行的flow\job个数 azkaban单个job最小使用的内存 相关配置 executor最大线程数: exe ...

  7. azkaban3.90.0部署

    1.下载这个网友提供的编译包,自己编的老出错,没弄了 https://blog.csdn.net/logincheck/article/details/110119987 2.将 解压到 /opt/m ...

  8. 【Azkaban搭建】---Azkaban 3.25.0搭建细则 超实用

    一.前述 Azkaban是一个工作流调度工具,因为需要各个任务之间有依赖关系,传统的Crontab 任务已经不能满足. 所以需要建立一套工作流引擎.相比Ooize来说,Azkaban的优势是作为一个客 ...

  9. 基于Azkaban的任务定时调度实践

    本文由云+社区发表 作者:maxluo 一.Azkaban介绍 Azkaban是LinkedIn开源的任务调度框架,类似于JavaEE中的JBPM和Activiti工作流框架. Azkaban功能和特 ...

随机推荐

  1. 2018-8-17-C#-从零开始写-SharpDx-应用-控制台创建-Sharpdx-窗口

    title author date CreateTime categories C# 从零开始写 SharpDx 应用 控制台创建 Sharpdx 窗口 lindexi 2018-8-17 9:3:3 ...

  2. 一个网页登陆界面写30多个测试Case——测试之道

    转自博文:http://www.cnblogs.com/I-am-Betty/p/3566411.html 具体需求: 有一个登陆页面, (假如上面有2个textbox, 一个提交按钮. 请针对这个页 ...

  3. 学习Web前端开发时有哪些技术点

    现在学前端的人是越来越多,学习质量也是参差不齐.过来人的身份告诉你,如果你还没有下定决心花时间去学习Web前端,那也可以先找些视频学习下,Web前端开发有哪些常见技术点!接下来,就看看Web前端开发有 ...

  4. LintCode_44 最小子数组

    题目 给定一个整数数组,找到一个具有最小和的子数组.返回其最小和. 注意事项 子数组最少包含一个数字 样例 给出数组[1, -1, -2, 1],返回 -3 思路 动态规划解决 C++代码 int m ...

  5. 开户项目的sql查询语句备查

    查询全国所有的券商名录 SELECT id,security,province,city,borough FROM t_security GROUP BY security ; 查询某个省份的所有券商 ...

  6. django中的聚合索引

    Django(元信息)元类建索引 ORM查询(sql优化)优化 自定义聚合函数 Django的元类建索引————索引:索引的一个主要目的就是加快检索表中数据,索引是经过某种算法优化过的,因而查找次数要 ...

  7. 2019-3-1-安装-Sureface-Hub-系统-Windows-10-team-PPIPro-系统

    title author date CreateTime categories 安装 Sureface Hub 系统 Windows 10 team PPIPro 系统 lindexi 2019-03 ...

  8. web前端学习(二)html学习笔记部分(8)--服务器推送事件3

    1.2.22  html5服务器推送事件 1.2.22.1  html5服务器推送事件介绍 服务器推送事件(Server-sent Events)是HTML5规范中的一个组成部分,可以用来从服务器端实 ...

  9. Python之路--协程/IO多路复用

    引子: 之前学习过了,线程,进程的概念,知道了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位.按道理来说我们已经算是把CPU的利用率提高很多了.但是我们知道无论是创建多进程还是创建多 ...

  10. 二叉树总结—建树和4种遍历方式(递归&&非递归)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u013497151/article/details/27967155 今天总结一下二叉树.要考离散了 ...