Azkaban的安装与使用


安装节点要求:

  • hadoop
  • hive
  • sqoop
  • zookeeper
  • jdk

1.Azkaban的安装

1.1上传安装包

put c:/azkaban-executor-server-2.5.0.tar.gz
put c:/azkaban-sql-script-2.5.0.tar.gz
put c:/azkaban-web-server-2.5.0.tar.gz

1.2解压

tar -xzvf apache-flume-1.8.0-bin.tar.gz -C /home/hadoop/apps/azkaban
tar -xzvf azkaban-sql-script-2.5.0.tar.gz -C /home/hadoop/apps/azkaban
tar -xzvf azkaban-web-server-2.5.0.tar.gz -C /home/hadoop/apps/azkaban

1.3配置环境变量

sudo vi /etc/profile

将下面内容写到最后

export AZKABAN_EXE_HOME=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0
export PATH=$PATH:$AZKABAN_EXE_HOME/bin
export AZKABAN_WEB_HOME=/home/hadoop/apps/azkaban/azkaban-web-2.5.0
export PATH=$PATH:$AZKABAN_WEB_HOME/bin

重新加载配置文件

source /etc/profile

1.4在mysql中准备azkaban的数据库和表

mysql -uroot -p

创建azkaban数据库

create database azkaban;

使用数据库

use azkaban;

导入sql语句

source /home/hadoop/apps/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;

1.5生成jettey的数字证书

在azkaban-web-2.5.0目录下执行

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

之后标序号的地方才需要输入内容,其他的地方是可选项直接回车即可,这里我将密码设置为hadoop123

①hadoop123

②hadoop123

③CN

④yes

⑤hadoop123

⑥hadoop123

①Enter keystore password:
②Re-enter new password:
What is your first and last name?
 [Unknown]:
What is the name of your organizational unit?
 [Unknown]:
What is the name of your organization?
 [Unknown]:
What is the name of your City or Locality?
 [Unknown]:
What is the name of your State or Province?
 [Unknown]:
③What is the two-letter country code for this unit?
 [Unknown]: CN
④Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN correct?
 [no]: yes
⑤Enter key password for <jetty>(RETURN if same as keystore password):

1.6设置时区

给三台虚拟机同时发送命令同步到上海的时区

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

1.7修改配置文件

1.7.1azkaban-executor
cd /home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf

编辑

vi azkaban.properties

照着下面的的注释修改配置文件,一行一行的来

#Azkaban
default.timezone.id=Asia/Shanghai #时区
# Azkaban JobTypes 插件配置,插件所在位置
azkaban.jobtype.plugin.dir=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/plugins/jobtypes
#Loader for projects
executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=/home/hadoop/projects
#数据库设置
database.type=mysql #数据库类型(目前只支持 mysql)
mysql.port=3306 #数据库端口号
mysql.host=hadoop03 #数据库 IP 地址
mysql.database=azkaban #数据库实例名
mysql.user=root #数据库用户名
mysql.password=123456 #数据库密码
mysql.numconnections=100 #最大连接数
# 执行服务器配置
executor.maxThreads=50 #最大线程数
executor.port=12321 #端口号(如修改,请与 web 服务中一致)
executor.flow.threads=30 #线程数

1.7.2azkaban-web
cd /home/hadoop/apps/azkaban/azkaban-web-2.5.0/conf

编辑

vi azkaban.properties

照着下面的的注释修改配置文件,一行一行的来

#Azkaban Personalization Settings
azkaban.name=MyTestAzkaban #服务器 UI 名称,用于服务器上方显示的名字
azkaban.label=My Local Azkaban #描述
azkaban.color=#FF3601 #UI 颜色
azkaban.default.servlet.path=/index
web.resource.dir=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/web/ #默认根 web 目录
default.timezone.id=Asia/Shanghai #默认时区,已改为亚洲/上海 默认为美国
#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager #用户权限管理默认类
user.manager.xml.file=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/conf/azkaban-users.xml
 #用户配置,具体配置参加下文
#Loader for projects # global 配置文件所在位置
executor.global.properties=/home/hadoop/apps/azkaban/azkaban-executor-2.5.0/conf/global.properties
azkaban.project.dir=/home/hadoop/projects
database.type=mysql #数据库类型
mysql.port=3306 #端口号
mysql.host=hadoop03 #数据库连接 IP
mysql.database=azkaban #数据库实例名
mysql.user=root #数据库用户名
mysql.password=123456 #数据库密码
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=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore #SSL 文件名
jetty.password=hadoop123 #SSL 文件密码
jetty.keypassword=hadoop123 #Jetty 主密码 与 keystore 文件相同
jetty.truststore=/home/hadoop/apps/azkaban/azkaban-web-2.5.0/keystore #SSL 文件名
jetty.trustpassword=hadoop123 # SSL 文件密码
# 执行服务器属性
executor.port=12321 #执行服务器端口
# 邮件设置(可略过)
mail.sender=[email protected] #发送邮箱
mail.host=smtp.163.com #发送邮箱 smtp 地址
mail.user=xxxxxxxx #发送邮件时显示的名称
mail.password=********** #邮箱密码
job.failure.email=[email protected] #任务失败时发送邮件的地址
job.success.email=[email protected] #任务成功时发送邮件的地址
lockdown.create.projects=false #
cache.directory=cache #缓存目录

修改用户配置

vi azkaban-users.xml

就是在原有的文件上加上一行自己的用户名和权限,我这里用户名为hadoop密码为hadoop123

<azkaban-users>
<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
<user username="metrics" password="metrics" roles="metrics"/>
<user username="hadoop" password="hadoop123" roles="admin,metrics" />
<role name="admin" permissions="ADMIN" />
<role name="metrics" permissions="METRICS"/>
</azkaban-users>

1.8添加derby依赖

找到自己的jdk路径

cd $JAVA_HOME

找到derby jar包路径

cd db/lib

将jar分别发送到azkaban-executor-2.5.0/lib/与azkaban-web-2.5.0/lib/下

cp derby.jar /home/hadoop/apps/azkaban/azkaban-executor-2.5.0/lib/
cp derby.jar /home/hadoop/apps/azkaban/azkaban-web-2.5.0/lib/

1.9启动

启动 web 服务器

azkaban-web-start.sh

启动执行服务器

azkaban-executor-start.sh

访问这个页面(最好使用谷歌,火狐):

https://hadoop03:8443

  • 注意一定是https而不是http

  • 如果弹出不安全警告,直接在高级选项里面强制进入

在这里插入图片描述

在这里插入图片描述

接着弹出登录页面

在这里插入图片描述

直接输入用户名和密码登录即可,我设置的是用户名hadoop,密码hadoop123

2.实战演示

2.1执行普通命令

进入页面

在这里插入图片描述
在这里插入图片描述
在windows上新建一个command.job的文件写入以下内容

#command.job
type=command
command=echo 'hello azkaban'

写好之后直接右键打成zip格式的包(注意这个文件要放在压缩文件的根目录下即压缩文件里面不能有文件夹)

在这里插入图片描述

然后点击页面上的上传按钮

在这里插入图片描述

将文件上传上去

在这里插入图片描述

然后点击Execute Flow
在这里插入图片描述

再点击Execute直接执行

在这里插入图片描述

直接点击Continue

在这里插入图片描述

出现如图所示绿色的command按钮代表执行完成,可以在Job List里面查看日志信息

在这里插入图片描述

点击Details

在这里插入图片描述

可以看到hello azkaban

在这里插入图片描述

接着回到刚才的页面再测试一下定时执行,一样的点击Execute Flow

在这里插入图片描述

点击左下角的Schedule

在这里插入图片描述

进行设置

在这里插入图片描述

这里的时间是值Linux上的时间,可以进行查看

date

在这里插入图片描述

设置好时间后点击Continue

在这里插入图片描述

可以在History看到我们的命令已经按时执行过了

在这里插入图片描述

2.2执行脚本文件

与上面一样自行创建脚本文件

hello.sh

#!/bin/bash
echo 'hello' > /home/hadoop/helloAzkaban.txt

command.job

#command.job
type=command
command=sh hello.sh

写好之后打成zip包,再新建一个test02,重复上面的步骤执行任务

在这里插入图片描述

在这里插入图片描述
执行完成后可以在根目录上看到我们的文件

cd ~
cat helloAzkaban.txt

在这里插入图片描述

在这里插入图片描述

2.3执行依赖

stepone.job

# stepone.job
type=command
command=echo stepone

steptwo.job

# steptwo.job
type=command
dependencies=stepone,stepthree
command=echo steptwo

stepthree.job

# stepthree.job
type=command
command=echo stepthree

在这里插入图片描述

然后跟上面一样的,新建test03,并对任务进行执行,可以看到steptwo是依赖于stepone与stepthree的,可以在Job List中查看它们打印的信息

在这里插入图片描述

发布了101 篇原创文章 · 获赞 265 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/a805814077/article/details/102787905