azkaban安装

Azkaban

一、Azkaban安装

安装mysql5,7.29

 

下载安装包

 

azkaban-master.zip

 

配置jdk环境变量

 

yum install -y git

 

 

创建azkaban用户

 

导入azkaban安装包

 

tar -xzvf azkaban-3.73.1.tar.gz
 
cd azkaban-3.73.1/

#运行自带方法 Build Azkaban

./gradlew build

 

显示如下界面,则表示成功。

 

 

然后卸载。请确保你现在依旧在 /home/azkaban/azkaban-3.73.1/

 

./gradlew clean

 

再依次执行:

./gradlew installDist

 

 

 

 

./gradlew test

 

 

 

 

./gradlew build -x test

 

 

 

或者:

./gradlew distTar

 

文件目录如下:

 

 

 

在每个目录下的build/distributions/中有对应的tar.gz包

 

cp azkaban-3.80.1/azkaban-*/build/distributions/*.tar.gz a_azkaban/

 

 

 

解压azkaban-db并登录mysql后执行

use Azkaban;
source /opt/azkaban/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql;

 

创建SSL配置

keytool -keystore keystore -alias jetty -genkey -keyalg RSA

输入密钥库口令: 

再次输入新口令:

您的名字与姓氏是什么?

  [Unknown]: 

您的组织单位名称是什么?

  [Unknown]: 

您的组织名称是什么?

  [Unknown]: 

您所在的城市或区域名称是什么?

  [Unknown]: 

您所在的省/市/自治区名称是什么?

  [Unknown]: 

该单位的双字母国家/地区代码是什么?

  [Unknown]:  CN

CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN是否正确?

  [否]:  是

输入 <jetty> 的密钥口令

    (如果和密钥库口令相同, 按回车):

 

 

修改时区

注:先配置好服务器节点上的时区

 

1、先生成时区配置文件 Asia/Shanghai,用交互式命令 tzselect 即可

 

2、拷贝该时区文件,覆盖系统本地时区配置

 

 

sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

 

 

 

修改配置文件:

1、azkaban-exec-server配置如下:

 

#Azkaban
default.timezone.id=Asia/Shanghai #时区
 
# Azkaban JobTypes 插件配置,插件所在位置
azkaban.jobtype.plugin.dir= /opt/azkaban/azkaban-exec-server/plugins/jobtypes
 
#Loader for projects
executor.global.properties=/opt/azkaban/azkaban-exec-server/conf/global.properties
 
azkaban.project.dir=projects
 
#数据库设置
 
database.type=mysql #数据库类型(目前只支持 mysql)
 
mysql.port=3306 #数据库端口号
 
mysql.host=192.168.88.137 #数据库 IP 地址
 
mysql.database=azkaban #数据库实例名
 
mysql.user=azkaban#数据库用户名
 
mysql.password=azkaban#数据库密码
 
mysql.numconnections=100 #最大连接数
 
# 执行服务器配置
executor.maxThreads=50 #最大线程数
 
executor.port=12321 #端口号(如修改,请与 web 服务中一致)
 
executor.flow.threads=30 #线程数
 
 
2azkaban-web-server配置修改
# Azkaban Personalization Settings
azkaban.name=Test
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=conf/azkaban-users.xml
# Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.use.ssl=false
jetty.maxThreads=25
jetty.port=8081
# Azkaban mysql settings by default. Users should configure their own username and password.
database.type=mysql
mysql.port=3306
mysql.host=192.168.88.137
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100

 

3、配置登录用户信息

azkaban-users.xml添加如下增加用户

<user password="test" roles="metrics,admin" username="test"/>

 

 

启动Azkaban

 

先启动azkaban-exec-server

 

bin/start-exec.sh

 

 

然后启动azkaban-web-server

 

bin/start-web.sh

 

 

 

 

 

 

报错:

1、启动azkaban-web时,启动不成功,日志信息如下图,

解决方法为修改数据库executors表中的数据,active字段数据值由0改为1即可。

 

 

2、手动激活executor

 

解决办法执行如下命令

curl http://192.168.88.137:12321/executor?action=activate

 

3、解决azkaban3.7执行job时一直处于preparing状态问题:

1.考虑内存问题:

修改azkaban-web下的azkaban.properties配置文件

去掉MinimumFreeMemory

过滤器会检查 executor 主机空余内存是否会大于 6G,如果不足 6G,则 web-server 不会将任务交由该主机执行

即为:

azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus

 

 

 

 

二、Azkaban的使用

脚本命名格式为filename.job

 

打包为filename.zip 进行上传到azkaban,然后执行任务。

 

依赖脚本打包为一个zip文件进行上传。

 

例如:

 

test1.job

 

type=command
command=sh /home/azkaban/testflow/test1.sh

 

test2.job

 

type=command
command=sh /home/azkaban/testflow/test2.sh

 

date.job

 

type=command
command=sh /home/azkaban/testflow/date.sh
dependencies=test1,test2

 

hello.job

 

type=command
command=sh /home/azkaban/testflow/hello.sh
dependencies=date

 

就形成了依赖任务流,

 

sh脚本在exec-server服务器中,按需进行编写。

 

type类型有如下几类:

  • command:Linux shell命令行任务
  • gobblin:通用数据采集工具
  • hadoopJava:运行hadoopMR任务
  • java:原生java任务
  • hive:支持执行hiveSQL
  • pig:pig脚本任务
  • spark:spark任务
  • hdfsToTeradata:把数据从hdfs导入Teradata
  • teradataToHdfs:把数据从Teradata导入hdfs

 

 

 

 

 
上一篇:vulnhub之旅:bluemoon


下一篇:Python - 数据类型