azkaban搭建

Azkaban

azkaban:中文音译:阿兹卡班,是linkedin(音译:邻客音)公司(是全球最大的职业社交网站,现用户数量已达到2亿平均每秒有一个新会员的加入)推出的一款开源的调度工具,在linkedin内部azkaban主要被用于hadoop作业或其他类型的数据仓库的调度。

1,数据库设置
目前,Azkaban2只使用MySQL作为其数据存储。
(1)安装MySQL
Mysql安装所需包:
MySQL-client-5.5.35-1.linux2.6.i386.rpm
MySQL-server-5.5.35-1.linux2.6.i386.rpm

mysql安装服务端:
rpm –ivh MySQL-server-5.5.35-1.linux2.6.i386.rpm

mysql安装客户端:
rpm -ivhMySQL-client-5.5.35-1.linux2.6.i386.rpm

(2)设置数据库
创建数据库azkaban
#示例数据库创建命令,虽然数据库名称不必是"azkaban"
CREATE DATABASE azkaban;
#创建数据库用户 azkaban
CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';
#设置用户权限的数据库。创建阿兹卡班的用户如果尚未作出,并给用户 INSERT,SELECT,UPDATE,DELETE 的权限操作azkaban数据库中的所有表。
#替换数据库,用户名与前面步骤中创建的那些。
GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;

#配置数据包大小 linux下,开放式的/etc/my.cnf中
max_allowed_packet= 1024M
如果在/etc 下没有 my.cnf 拷贝 /usr/share/mysql/my-medium.cnf 到/etc/ 并命名为my.cnf

mysql下载地址:http://dev.mysql.com/downloads/mysql/5.5.html#downloads
(4) 解压 azkaban-sql-script-2.1.tar.gz
tar xvf azkaban-sql-script-2.1.tar.gz 执行sql脚本,在azkaban库中创建表

2,设置azkaban的Web服务器
(1)安装web服务器
官网下载地址:http://azkaban.github.io/azkaban2/downloads.html
azkaban搭建_第1张图片
解压azkaban-web-server-2.1.tar.gz 包
tar xvf azkaban-web-server-2.1.tar.gz

解压后应有以下文件

bin            -- 服务器启动,停止脚本
conf        --配置azkaban web服务器
lib            --依赖azkaban jar
extlib        --驱动jar包
plugins     --可安装插件的目录
web            --网页(CSS,JavaScript,图像)文件azkaban的Web服务器

在CONF目录下有三个文件
azkaban.properties    --运行时的参数使用配置
global.properties    --这是通过为共享属性,每一个工作流程和工作全局静态属性
azkaban-users.xml    --用于添加用户和身份验证的作用


(2)创建ssl,参考地址(http://docs.codehaus.org/display/JETTY/How+to+configure+SSL)
keytool -keystore keystore -alias jetty -genkey -keyalg RSA

Enter keystore password: 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 --国家代号 CN
  [Unknown]:CN
Is CN=jetty.mortbay.org, OU=Jetty, O=Mort Bay Consulting Pty. Ltd.,
L=Unknown, ST=Unknown, C=Unknown correct --确认信息
  [no]:  yes

Enter key password for
        (RETURN if same as keystore password):  password
生成keystore文件后,拷贝到刚才文件的解压目录下,
在azkaban.properties中配置jetty的信息,根据刚才生成keystore时的信息配置一下内容

jetty.keystore =keystore
jetty.password =password
jetty.keypassword =password
jetty.truststore =keystore
jetty.trustpassword =password

(3)设置数据库,拷贝mysql 的JDBC的jar包到extlib下(jar下载地址:http://www.mysql.com/downloads/connector/j/)
然后在azkaban.properties配置数据库信息

database.type = mysql
mysql.port = 3306
mysql.host =localhost
mysql.database =azkaban
mysql.user =azkaban
mysql.password =azkaban
mysql.numconnections = 100

运行Web服务器,azkaban.properties中配置jetty端口信息

jetty.maxThreads = 25
jetty.ssl.port = 8443

sh bin/azkaban-web-start.sh . --启动web服务器
sh bin/azkaban-web-shutdown.sh --关闭web服务器

3,设置azkaban-executor-service执行器
(1)执行器安装
解压azkaban-executor-server-2.1.tar.gz 包,安装路径不能与azkaban-web-server-2.1.tar.gz安装在一个路径
tar xvf azkaban-executor-server-2.1.tar.gz
解压后应有以下文件

bin            -- 服务器启动,停止脚本
conf        --配置azkaban web服务器
lib            --依赖azkaban jar
extlib        --驱动jar包
plugins     --可安装插件的目录
web            --网页(CSS,JavaScript,图像)文件azkaban的Web服务器

(2) mysql配置
在CONF目录下的azkaban.properties中,设置创建的数据库信息

database.type = mysql
mysql.port = 3306
mysql.host =localhost
mysql.database =azkaban
mysql.user =azkaban
mysql.password =azkaban
mysql.numconnections = 100
(3)配置 AzabanWebServer 和 AzkabanExecutorServer
设置AzkabanExecutorServer的CONF目录下的azkaban.properties

executor.maxThreads = 50
executor.port = 12321
executor.flow.threads = 30
同样配置AzabanWebServer的CONF目录下的azkaban.properties指向同样的端口号
executor.port = 12321
默认情况下是一致的。
(3)运行执行器
sh bin/azkaban-executor-start.sh . --启动执行器
sh bin/azkaban-executor-shutdown.sh --停止执行器

azkaban用的是https的访问链接,目前azkaban只支持谷歌浏览器,火狐无法登陆
https://localhost:8443/


azkaban搭建_第2张图片

登录名:azkaban

密码:azka

azkaban搭建_第3张图片

目前azkaban2.1的版本有点小BUG,在上传流程时会出现无法上传的现象,需要对源码进行修改

azkaban/webapp/servlet/ProjectManagerServlet.java中将

if(contentType != null && (contentType.startsWith("application/zip") ||contentType.startsWith("application/x-zip-compressed"))) {type = "zip";  }
改成

if(contentType != null && (contentType.startsWith("application/zip") || contentType.startsWith("application/x-zip-compressed")|| contentType.startsWith("application/octet-stream"))) {
                type = "zip";
            }

注释:上段代码是一位朋友指点,本人对java不太懂。

因个人水平有限,翻译处若有不当请见谅

转载请注明:http://blog.csdn.net/u012492511


你可能感兴趣的:(azkaban)