您的位置:首页 > 运维架构

hadoop学习之azkaban(5):azkaban-2.5.0的详细安装过程

2016-12-11 17:53 330 查看
一个完整的数据分析系统通常由大量的任务单元组成:比如shell脚本,java程序,mr程序,hive脚本等等。

各任务单元之间存在时间先后及前后依赖关系,为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。

azkaban就是这样一个工作流调度器,其提供的web用户界面非常方便使用。

一,安装详细过程
1,前提是安装好mysql数据库,详见本人博客:安装mysql

设置mysql的用户名为root,密码123456

2,下载并解压azkaban运行所需的3个基本组件

(1)Azkaban Web服务器

azkaban-web-server-2.5.0.tar.gz

(2)Azkaban执行服务器 

azkaban-executor-server-2.5.0.tar.gz

(3)Azkaban-sql脚本
azkaban-sql-script-2.5.0.tar.gz

3,azkaban脚本导入,将解压后的mysql 脚本,导入到mysql中:

进入mysql
mysql> create database azkaban;
mysql> use azkaban;
Database changed
mysql> source /home/hadoop/azkaban-2.5.0/create-all-sql-2.5.0.sql;


4,创建SSL配置

随便在那个地方执行命令:

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


运行此命令后,会提示输入当前生成 keystor的密码及相应信息,输入的密码请劳记,信息如下:

输入keystore密码:   //这里我们输入123456
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]:        //下面都可以直接回车
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么
[Unknown]:  CN
CN=Unknown, OU=Unknown, O=Unknown,L=Unknown, ST=Unknown, C=CN 正确吗?
[否]:  y

输入<jetty>的主密码
(如果和 keystore 密码相同,按回车): //直接回车


完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 拷贝到 azkaban web服务器根目录中.如:cp keystore ~/azkaban-web-2.5.0/

5,配置服务器节点上的时区。(注:这一步慎选,这一步是将系统的时区改为Shanghai,如果你的系统就是中国时间,就忽略这一步。我执行了这一步后导致后面的进程起不起来,又将虚拟机恢复到以前的快照才好,所以最好还是不要执行这一步)

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

拷贝该时区文件,覆盖系统本地时区配置  cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  

6,配置azkaban web服务器

vim azkaban-web-2.5.0/conf/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=node1                                      #数据库连接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=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                                 #缓存目录


vim azkaban-web-2.5.0/conf/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 web server了。

在azkaban的根目录下执行命令,因为配置文件中有相对路径。

azkaban-web-2.5.0@node1 # bin/azkaban-web-start.sh


打开https://node1:8443,就可以进入azkaban页面了,只不过现在只能创建工程,不能执行job,要想执行job,还要配置执行服务器。如下

7,配置azkaban-executer服务器

vim /root/azkaban-executor-2.5.0/conf/azkaban.properties

#Azkaban
default.timezone.id=Asia/Shanghai                             #时区

# Azkaban JobTypes 插件配置
azkaban.jobtype.plugin.dir=plugins/jobtypes                   #jobtype 插件所在位置

#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

#数据库设置
database.type=mysql                                           #数据库类型(目前只支持mysql)
mysql.port=3306                                               #数据库端口号
mysql.host=node1                                              #数据库IP地址
mysql.database=azkaban                                        #数据库实例名
mysql.user=root                                               #数据库用户名
mysql.password=123456                                         #数据库密码
mysql.numconnections=100                                      #最大连接数

# 执行服务器配置
executor.maxThreads=50                                        #最大线程数
executor.port=12321                                           #端口号(如修改,请与web服务中一致)
executor.flow.threads=30                                      #线程数


配置完后,,在executer-server根目录下启动执行服务器

azkaban-executor-2.5.0 @node1 # bin/azkaban-executor-start.sh


web-server和execute-server都启动后,就可以登陆页面执行job流程了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: