azikaban getting start

azikaban提供两种安装模式:单服务模式,和分布式多executor模式
单服务器模式,数据库为嵌入式h2(内置数据库),web服务和executor服务运行在同一进程上。
多executor模式,数据库基于mysql,并且以master-slave方式安装mysql实例;web服务和executor服务器运行在不同的主机上,升级和维护对用户不影响。

整体步骤如下:

  • 安装数据
  • 配置数据库使用多executor模式
  • Download and install the Executor Server for each executor configured in database,对每个配置在数据库中的executor,下载并安装executor
  • Install Azkaban Plugins
  • Install the Web Server

1. Getting started with the Solo Server
单节点模式有如下便利:

  • Easy to install - No MySQL instance is needed. It packages H2 as its main persistence storage.
  • Easy to start up - Both web server and executor server run in the same process.
  • Full featured - It packages all Azkaban features. You can use it in normal ways and install plugins for it.

1.1 Installing the Solo Server

  1. Clone the repo:克隆源码
    git clone https://github.com/azkaban/azkaban.git
  2. Build Azkaban and create an installation package: 编译源码
    cd azkaban; ./gradlew build installDist
  3. Start the solo server:启动
    cd azkaban-solo-server/build/install/azkaban-solo-server; bin/start-solo.sh
    打开 http://localhost:8081/ ;用户名密码: azkaban/azkaban 即可访问
    用户名密码配置在conf/azkaban-users.xml
  4. Stop server:
    bin/shutdown-solo.sh

Folder Description
bin The scripts to start/stop Azkaban solo server
conf The configuration files for Azkaban solo server
lib The jar dependencies for Azkaban
extlib Additional jars that are added to extlib will be added to Azkaban’s classpath
plugins the directory where plugins can be installed
web The web (css, javascript, image) files for Azkaban web server

FolderDescription
bin启动停止solo server模式的azikaban
conf配置文件目录
libazkaban的依赖jar
extlib额外的jar报,会被添加到azkaban的classpath驱动目录
webweb文件(css,js,image)等

conf目录包含以下文件:

  • azkaban.private.properties 一些机密属性,如mysql密码
  • azkaban.properties: azikaban运行时参数
  • global.properties:全局静态属性,作为共享变量传递给每个工作流和作业
  • azkaban-user.xml:用户权限角色配置

2. Getting started with the Multi Executor Server
2.1 数据库安装
官方建议使用mysql数据库

# Example database creation command, although the db name doesn't need to be 'azkaban'
mysql> CREATE DATABASE azkaban;
# Example database creation command. The user name doesn't need to be 'azkaban'
mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';
# give the user INSERT, SELECT, UPDATE, DELETE permission on all tables in the Azkaban db.
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to '<username>'@'%' WITH GRANT OPTION;

提高mysql包尺寸大小,默认大小太小,在linux下打开/etc/my.cnf,添加

[mysqld]
...
max_allowed_packet=1024M

重启mysql:$ sudo /sbin/service mysqld restart

  • Create the Azkaban Tables
    运行 create-all-sql-.sql
    在build azkaban源码后,sql文件存放在/Users/latang/LNKDRepos/azkaban/azkaban-db/build/distributions/azkaban-db

2.2 安装executor server
executor server处理workflow和job的实际执行。

  1. 修改azkaban.properties内mysql用户名密码
# Mysql Configs
mysql.user=<username>
mysql.password=<password>

命令的目录根据构建源码后,可能有所不同。

cd azkaban-exec-server/build/install/azkaban-exec-server
./bin/start-exec.sh
cd azkaban-exec-server/build/install/azkaban-exec-server
./bin/start-exec.sh
#激活执行程序
cd azkaban-exec-server/build/install/azkaban-exec-server
curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo

这样一个executor就启动了。
用户可以通过分发和部署多个执行程序包来设置多个执行程序

3. Installing Azkaban Web Server
web服务处理项目管理,权限验证,执行的调度和触发。
azkaban/azkaban-web-server/build/install/azkaban-web-server 下修改 azkaban.properties

# Mysql Configs
mysql.user=<username>
mysql.password=<password>
cd azkaban-web-server/build/install/azkaban-web-server
./bin/start-web.sh

登录:http://localhost:8081/

3. 配置插件
azkaban设计为基于插件的非核心功能架构,即:
在不改变azikaban核心的情况下升级安装插件,易于扩展。插件包括:
web端插件:
1)视图插件:给网页添加一些特征,如hdfs文件系统查看器
2)触发器插件:用于触发方法,作业
3)用户管理插件:用户验证方法等
4)告警插件:不同的告警方法
executor端插件:
可插拔的作业类型执行器,例如hadoop生态圈的作业类型。
3.1 用户管理驱动
azikaban默认带有XMLUserManager类,通过xml文件管理用户权限;但这并不能保证足够的安全和扩展性;conf/azkaban-users.xml

要安装自己的用管理类,需要在conf/azkaban.properties内指定

user.manager.class=MyUserManagerClass

并将jar包添加进plugin/内
3.2 视图驱动
3.2.1hdfs视图

viewer.plugins=hdfs

将jar添加到Azkaban-web-server-install-dir/plugins/viewer/hdfs
重启webserver
3.3 作业类型驱动
azkabna本身带有有限的作业类型驱动运行shell 和java项目。对于其他作业类型如hadoopJava, Pig, Hive, VoldemortBuildAndPush, etc;需要另行安装。在
Azkaban-exec-server-install-dir/conf/azkaban.properties:

#告诉作业类型驱动目录在:Azkaban-exec-server-install-dir/plugins/jobtypes下
azkaban.jobtype.plugin.dir=plugins/jobtypes

配置hadoop信息(涉及到hadoop安全验证问题需要额外配置,请查看官网):

ParameterDescription
hadoop.homeYour $HADOOP_HOME setting.
jobtype.global.classpathThe cluster specific hadoop resources, such as hadoop-core jar, and hadoop conf (e.g. h a d o o p . h o m e / h a d o o p − c o r e − 1.0.4. j a r , {hadoop.home}/hadoop-core-1.0. 4.jar, hadoop.home/hadoopcore1.0.4.jar,{hadoop.home}/conf)

4. 属性参数
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值