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

来源:互联网 发布:软件产品质量控制 编辑:程序博客网 时间:2024/06/05 06:14

一个完整的数据分析系统通常由大量的任务单元组成:比如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中:

进入mysqlmysql> create database azkaban;mysql> use azkaban;Database changedmysql> 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]:  CNCN=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 Settingsazkaban.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 classuser.manager.class=azkaban.user.XmlUserManager        #用户权限管理默认类user.manager.xml.file=conf/azkaban-users.xml          #用户配置,具体配置参加下文 #Loader for projectsexecutor.global.properties=conf/global.properties     #global配置文件所在位置azkaban.project.dir=projects                          # database.type=mysql                                   #数据库类型mysql.port=3306                                       #端口号mysql.host=node1                                      #数据库连接IPmysql.database=azkaban                                #数据库实例名mysql.user=root                                       #数据库用户名mysql.password=123456                                   #数据库密码mysql.numconnections=100                              #最大连接数 # Velocity dev modevelocity.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

#Azkabandefault.timezone.id=Asia/Shanghai                             #时区 # Azkaban JobTypes 插件配置azkaban.jobtype.plugin.dir=plugins/jobtypes                   #jobtype 插件所在位置 #Loader for projectsexecutor.global.properties=conf/global.propertiesazkaban.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流程了。

0 0
原创粉丝点击