Apache AzKaban 环境搭建与入门使用

1.azkaban的环境搭建

要求:由于这里azkaban要调度hive作业,可能存在调度sqoop等作业,因此需要安装在有这些节点的机器上

1)上传jar包并解压缩(三个)
mkdir /home/hadoop/azkaban
# 上传3个jar包到该目录下
[hadoop@mycat01 azkaban]$ ll /home/hadoop/azkaban
-rwxrw-r-- 1 hadoop hadoop 11157302 Mar 28 08:57 azkaban-executor-server-2.5.0.tar.gz
-rwxrw-r-- 1 hadoop hadoop     1928 Mar 28 08:57 azkaban-sql-script-2.5.0.tar.gz
-rwxrw-r-- 1 hadoop hadoop 11989669 Mar 28 08:57 azkaban-web-server-2.5.0.tar.gz

# 修改所有者数组
sudo chown hadoop:hadoop azkaban-executor-server-2.5.0.tar.gz
sudo chown hadoop:hadoop azkaban-sq-script-2.5.0.tar.gz
sudo chown hadoop:hadoop azkaban-web-server-2.5.0.tar.gz

# 添加执行权限
chmod u+x azkaban-executor-server-2.5.0.tar.gz
chmod u+x azkaban-sql-script-2.5.0.tar.gz
chmod u+x azkaban-web-server-2.5.0.tar.gz

# 解压
tar -zxvf azkaban-executor-server-2.5.0.tar.gz
tar -zxvf azkaban-sql-script-2.5.0.tar.gz
tar -zxvf azkaban-web-server-2.5.0.tar.gz
2)配置环境变量
sudo vim /etc/profile
....
export AZKABAN_EXEC_HOME=/home/hadoop/azkaban/azkaban-executor-2.5.0
export AZKABAN_WEB_HOME=/home/hadoop/azkaban/azkaban-web-2.5.0
export PATH=$PATH:$AZKABAN_EXEC_HOME/bin:$AZKABAN_WEB_HOME/bin

使配置生效

source /etc/profile
3)生成jetty数字认证证书(一定要注意证书位置)
cd /home/hadoop/azkaban/azkaban-web-2.5.0
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
# 第一个   设置jetty数字证书密码
# 第二个   确认jetty数字证书密码
# ... 私人信息的(除国家外的都可以直接回车)
# (two-letter  country)设置国家的  直接输入  CN
# 确认 yes
# 设置jetty验证密码:  可以和前面一致
# 确认jetty验证密码
4)准备azkaban数据库(为了部署任务的存储)—这里采用MySQL
mysql> create database azkabandb;
mysql> use azkabandb;
mysql> source /home/hadoop/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
5)配置executor的配置
default.timezone.id=Asia/Shanghai   # 设置为上海时区

# Azkaban JobTypes Plugins 插件路径,修改为绝对路径
azkaban.jobtype.plugin.dir=/home/hadoop/azkaban/azkaban-executor-2.5.0/plugins/jobtypes

#Loader for projects azkaban 项目加载路径,全部改成绝对路径
executor.global.properties=/home/hadoop/azkaban/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=/home/hadoop/azkaban/projects

database.type=mysql   # 存储数据库类型
mysql.port=3306  # 数据库端口
mysql.host=mycat01  # 主机名
mysql.database=azkabandb  # 数据库(这个就是刚刚配置的数据库)
mysql.user=root  # 用户名
mysql.password=miku  # 密码
mysql.numconnections=100  # 最大连接数

# Azkaban Executor settings
executor.maxThreads=50  # 最大开启的线程数
executor.port=12321   # executor端口
executor.flow.threads=30  # 工作流线程数 30
4)配置web的配置
① azkaban.properties
#Azkaban Personalization Settings
azkaban.name=azkaban      
azkaban.label=My Local azkaban
azkaban.color=#188EEE
azkaban.default.servlet.path=/index
web.resource.dir=/home/hadoop/azkaban/azkaban-web-2.5.0/web/  # 需要修改为全路径
default.timezone.id=Asia/Shanghai  # 设置时区

#Azkaban UserManager class  修改全路径
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/home/hadoop/azkaban/azkaban-web-2.5.0/conf/azkaban-users.xml

#Loader for projects
executor.global.properties=/home/hadoop/azkaban/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=/home/hadoop/azkaban/projects

database.type=mysql    # 存储数据库配置
mysql.port=3306
mysql.host=mycat01
mysql.database=azkabandb
mysql.user=root
mysql.password=miku
mysql.numconnections=100

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties. jetty认证配置,该用全路径用全路径
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=/home/hadoop/azkaban/azkaban-web-2.5.0/keystore
jetty.password=azkaban   # jetty 密码
jetty.keypassword=azkaban  # jetty认证密码(数字证书密码)
jetty.truststore=/home/hadoop/azkaban/azkaban-web-2.5.0/keystore # jetty认证文件存储位置
jetty.trustpassword=azkaban # jetty认证密码(数字证书密码)

# Azkaban Executor settings executor端口
executor.port=12321

# mail settings   邮件 --此处这里就不配置了
mail.sender=
mail.host=
job.failure.email=
job.success.email=

lockdown.create.projects=false

cache.directory=cache
② 配置azkaban-users.xml 添加azkaban用户
<azkaban-users>
        <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
        <user username="metrics" password="metrics" roles="metrics"/>
        
        <user username="mycat" password="mikumoge" roles="admin,metrics"/>

        <role name="admin" permissions="ADMIN" />
        <role name="metrics" permissions="METRICS"/>
azkaban-users>
6)添加derby依赖jar包

derby.jar 这个jar包在jdk中有

cp /opt/jdk1.8.0_73/db/lib/derby.jar /home/hadoop/azkaban/azkaban-executor-2.5.0/lib
cp /opt/jdk1.8.0_73/db/lib/derby.jar /home/hadoop/azkaban/azkaban-web-2.5.0/lib

7)启动azkaban服务
azkaban-executor-start.sh        # 12321端口,默认前台启动,可以使用nohup   
azkaban-web-start.sh          # 8443端口,默认前台启动,可以使用nohup 

8)访问web页面
https://mycat01:8443

2.Azkaban的基本使用

1)job准备
① 在桌面编写创建一个以.job为扩展名的文件,如test01.job ,编辑内容如下:
type=command
command=echo hello

② 直接右键压缩(必须zip压缩—不要有顶级目录)压缩文件名和刚刚的job文件名称保持一致(test01.zip)
2)打开浏览器进入azkaban web界面
https://mycat01:8443/index

点击+ Create Project: 创建一个project:

Create Project
Name    xxx
Description  xxxx

test01
test echo hello
Last modified on 2019-03-30 18:52:48 by mycat.

创建成功,项目点击进去

`Project test01`
    `Flows`  `Permissions`  `Project Logs`
    
`^ echohello`								 `Execute Flow`  `Executions` `Summary`

echohello										`Run Job` `Run With Dependencies`

点击 Run Job按钮,弹出Execute Flow xxx(执行某某工作流)窗口

Flow View    # 工作流视图
    
Notification    # 成功通知
Failure Options  # 失败通知
Concurrent      # 设置并发行相关的
Flow Parameters     # 键值对形式,在job文件中使用 $key 形式调用

Shedule  # 定时调度配置 定时调度
Execute   # 立即执行

其中定时调度中Schedule Flow Options可以进行类似crontab的配置(分时日月周)

3)关于job
type=command # 这个一般是定的
dependencies=job文件名,job文件名 # 配置依赖,不要扩展名
command=具体的命令 # 如果用到文件的话,可直接放到同级目录下

你可能感兴趣的:(Azkaban)