目标
- Azkaban的安装
- Azkaban的使用
- Git的安装
Git的安装
在安装Azkaban之前要安装Git
获取github最新的Git安装包下载链接,进入Linux服务器,执行下载,命令为:
wget https://github.com/git/git/archive/v2.17.0.tar.gz
压缩包解压,命令为:
tar -zxvf v2.17.0.tar.gz
安装编译源码所需依赖,命令为:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
耐心等待安装,出现提示输入y即可;
安装依赖时,yum自动安装了Git,需要卸载旧版本Git,命令为:
yum remove git -y
进入解压后的文件夹,命令 cd git-2.17.0 ,然后执行编译,命令为:
make prefix=/usr/local/git all
安装Git至/usr/local/git路径,命令为:
make prefix=/usr/local/git install
打开环境变量配置文件,命令 vim /etc/profile ,在底部加上Git相关配置信息:
export GIT_HOME=/usr/local/git/bin
export PATH=$GIT_HOME/bin/:$PATH输入命令
git --version
,查看安装的git版本,校验通过,安装成功。
Azkaban的安装
下载Azkaban
解压
tar -xzvf 3.81.0.tar.gz -C ../app/
安装编译文档
在开始编译之前要下载名为gradle-4.6-all.zip的包,如果直接让系统下载超级慢,下载好了放在同目录下,并且在
/azkaban/gradle/wrapper/gradle-wrapper.properties
中注释下载路径,并指定已经下载好的路径distributionUrl=gradle-4.6-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip还需要安装gcc环境:
sudo yum install -y gcc-c++*
修改maven仓库为阿里云镜像
vim azkaban-3.81.0/build.gradle 54行左右
maven {
//这里是阿里云
url 'http://maven.aliyun.com/nexus/content/repositories/central/'
}
正式编译
./gradlew build installDist -x test |
编译后生成三个文件
azkaban-exec-server |
执行
azkaban-solo-server
解压
azkaban-solo-server
到app
目录下tar -xzvf azkaban-solo-server/build/distributionsa/zkaban-solo-server-0.1.0-SNAPSHOT.tar.gz ~/app
启动:
bin/start-solo.sh
,生成AzkabanSingleServer
进程修改配置(时区、用户)
时区: default.timezone.id=Asia/Shanghai
用户: <user password="tunan" roles="admin" username="tunan"/>web端登录,端口8081
azkaban需要至少3G内存,如果内存不足3G,需要设置不检查内存
azkaban-web-server-2.7.0/plugins/jobtypes/commonprivate.properties
memCheck.enabled=false
Azkaban的使用
单节点部署
创建flow20.projec文件,写入信息:
azkaban-flow-version: 2.0
创建basic.flow文件,写入信息:
nodes:
- name: jobA
type: command
config:
command: echo "This is an echoed text."压缩Archive.zip文件,在web页面中提交
坑
: 提交的用户和hadoop上的用户不同多依赖案例
flow20.projec文件相同,basic.flow文件内容不同,文件名可不同
nodes:
- name: jobC
type: noop
# jobC depends on jobA and jobB
dependsOn:
- jobA
- jobB
- name: jobA
type: command
config:
command: echo "This is an echoed text."
- name: jobB
type: command
config:
command: pwdwc案例
nodes:
- name: tunan-wordcount
type: command
config:
command: hadoop jar /home/hadoop/app/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.16.2.jar wordcount /azkaban/data/wc.txt /out- 直接点击程序修改输出文件参数
- 使用Flow Parameters修改输出文件参数
hive案例
除了固定的flow20.project文件,需要修改hive.flow文件和添加stat.sh文件
hive.flow
nodes:
- name: exe hive
type: command
config:
command: sh stat.shstat.sh
! /bin/bash
hive -e "select * from offline_dw.dws_country_traffic"上传相同的文件,新版本会覆盖旧的版本
调度执行
在执行页面的左下角点击Schedule即可,并可在Scheduling中查看调度信息,然后在History中查看历史执行信息
多节点部署
在mysql中创建数据库
mysql> CREATE DATABASE azkaban;
创建用户
mysql> CREATE USER 'tunan'@'%' IDENTIFIED BY 'tunan';
赋权给用户
GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'tunan'@'%' WITH GRANT OPTION;
在mysql中生成需要的表
这里的source可能会遇到权限问题,解决的办法很多,如移动其他位置
use azkaban;
source /home/hadoop/app/azkaban/azkaban-db/build/install/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql;执行SQL获取动态端口号
mysql> select * from executors ;
+----+--------+-------+--------+
| id | host | port | active |
+----+--------+-------+--------+
| 1 | aliyun | 46418 | 0 |
+----+--------+-------+--------+激活执行器
curl -G "http://aliyun:46418/executor?action=activate"
把
azkaban-exec-server
和azkaban-web-server
解压,并启动tar -xzvf azkaban-exec-server/build/distributionsa/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz ~/app
tar -xzvf azkaban-web-server/build/distributionsa/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz ~/app登录web使用,使用方式和单节点一样
二次开发
azkaban的二次开发需要调用az已经做好的接口
命令行获取session.id
curl -k -X POST --data "action=login&username=azkaban&password=azkaban" http://aliyun:8081
{ |
常用功能
- 配置代理用户
- 配置hadoop.home
- 配置Spark作业提交