二、azkaban 指南
来源:互联网 发布:体育动漫知乎 编辑:程序博客网 时间:2024/06/01 20:27
在3.0版本中,提供了三种模式:单服务模式,2个服务模式以及分布式多服务模式。以下描述了它们之间的差异。
在单服务模式下,数据库使用H2,并且web server 和 executor server 运行在同一进程中。此模式合适个人试用使用。它也可以用在小规模的使用案例。
- 下载并安装 Solo Server 包
- 安装阿兹卡班插件
在 2个 server 模式适用在较重的生产环境。其数据库应该由MySQL实例,采用主从设置进行备份。WebServer 和 ExecutorServer应该在不同的进程中运行,使升级和维护不会影响用户。
- 建立数据库
- 下载并安装WebServer
- 下载并安装ExecutorServer
- 安装阿兹卡班插件
多个 Executor 模式为最重的生产环境。其数据库应该由MySQL实例,采用主从设置进行备份。WebServer和ExecutoerServer应该在不同的主机上运行,使升级和维护不会影响用户。这种多主机设置,让阿兹卡班具有强大的可扩展性。
- 建立数据库
- 下载并安装 WebServer
- 配置数据库使用多个 Executor
- 为数据库中配置的每个 executor 下载并安装 Executor Server
- 安装阿兹卡班插件
下面是关于如何设置阿兹卡班了说明。
Building from Source
Azkaban 使用 Gradle, 需要 jdk 1.8。 用户不需要安装 gradle,项目里自带了.
Linux and Mac OS X
$ ./gradlew distTar
Windows
$ gradlew distTar
安装Azkaban solo服务
在 Azkaban 2.5有一个 solo-server 模式,可以在学习或者小规模和对安全要求不高环境中使用。
其特点是:
- 易于安装 - MySQL实例不是必要的。它封装H2作为其主要的持久性存储。
- 易于启动 - Web服务和 Executor服务都运行在同一进程中。
- 全功能 -它打包所有azkaban的功能。你可以按通用的方式使用它,也可以为它安装插件。
安装Solo服务器
从下载页面下载azkaban-solo-server-2.5.0.tar.gz
另外,您也可以克隆GitHub库,你可以构建最新版本的主分支。到这里看的说明,从源代码构建。
软件包解压到一个目录下。提取后,应该有以下目录。
在
conf
目录中,应该有三个文件:azkaban.private.properties
- 阿兹卡班运行时使用的参数azkaban.properties
- 阿兹卡班运行时使用的参数global.properties
- 全局静态属性,在每一个工作流 及 job中被传递并共享。azkaban-users.xml中
- 用于添加用户和角色进行身份验证。使用此文件需要,设置 XmLUserManager 属性。
azkaban.properties
文件是主要的配置文件。获取密钥库SSL(可选)
Azkaban solo server在默认情况下不使用SSL。但是也可以使用相同的方式,把它设置在一个独立的网络服务中。方法如下:
Azkaban web server 使用 SSL 的 socket 连接器,那就必须有一个可用的密钥存储。查看这个链接创建一个。一旦密钥存储文件被创建,azkaban必须配置它的位置和密码。在
azkaban.properties
,下面的属性将会被覆盖。jetty.keystore=密钥库
jetty.password=密码
jetty.keypassword=密码
jetty.truststore=密钥库
jetty.trustpassword=密码
建立的UserManager
azkaban 使用 UserManager 提供身份验证和管理用户角色。默认情况下,azkaban 使用
XmlUserManager
从_azkaban-users.xml_获取用户名/密码及角色,可以在azkaban.properties
文件查看。user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml
运行Web服务器
在文件
azkaban.properties
中,使用下面的属性配置jetty。jetty.maxThreads = 25
jetty.ssl.port = 8081
执行
bin/azkaban-solo-start.sh
开始solo-sefver。要停止,运行bin/azkaban-solo-shutdown.sh
在浏览器上打开HTTP://localhost:8081/index。
数据库设置
目前,Azkaban2只使用MySQL作为其数据存储
1.安装MySQL
MySQL的文档网站。
2.设置数据库
创建一个数据库。
#名称可以自定义
mysql> CREATE DATABASE azkaban;
创建一个数据库用户。例如:
#用户名可以自定义
mysql> CREATE USER ‘username'@'%'IDENTIFIED BY'password';
设置用户权限。
#给用户添加
INSERT,SELECT,UPDATE,DELETE
权限。mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON <database>.* to ‘<username>'@‘%' WITH GRANT OPTION;
配置packet size。MySQL默认packet size 配置太低 。需要修改
max_allowed_packet
属性,比如 1024M。在Linux中,在
/etc/my.cnf
配置。在mysqld
后面,添加以下内容:[mysqld]
...
max_allowed_packet=1024M
需要重启MySQL,可以运行...
$ sudo /sbin/service mysqld restart
3.创建Azkaban的表
请从下载页面现在azkaban-sql-script,表创建语句都在里面。
可以在MySQL中运行每个表的创建语句来创建表。或者,简单的办法就运行
create-all-sql
脚本。以update
开头的脚本可以忽略。use azkaban;
source /home/cm/chenzhilei/azkaban-2.5.0/create-all-sql-2.5.0.sql
4.获取JDBC Connector jar包
由于种种原因,azkaban不分发MySQL的JDBC Connector jar包。您可以从 此链接 下载。
Web server和 executor server 需要这个jar,需要放到它们/extlib目录下。
设置Azkaban Web Server
Azkaban Web Server 负责处理项目管理、认证、调度以及触发器。
安装Web Server
从下载页面 下载 azkaban-web-server 软件包
另外,您也可以克隆GitHub库,构建最新版本的主分支。看这里的说明,从源代码构建。
软件包解压到一个目录下。安装路径应该是从AzkabanExecutorServer不同。提取后,应该有以下目录:
在
conf
目录中,应该有三个文件azkaban.properties
-运行时使用的参数global.properties
-全局静态属性,在 flow 和 job 中被被传递共享。azkaban-users.xml
-用于添加用户和进行角色身份验证。必须XmLUserManager
被设置为azkaban-users.xml
时该文件才被使用。
该
azkaban.properties
文件是主要的配置文件,azkaban 必须有此文件。获取密钥库SSL
Azkaban web server 使用 SSL 的 socket 连接器,那就必须有一个可用的密钥存储。您查看这个链接创建一个。一旦密钥存储文件被创建,azkaban必须配置它的位置和密码。在
azkaban.properties
,下面的属性将会被覆盖。jetty.keystore =密钥库jetty.password =密码jetty.keypassword =密码jetty.truststore =密钥库jetty.trustpassword =密码
设置DB
如果你还没有得到MySQL JDBC驱动程序,你可以这个链接下载。
移动这个jar到
extlib
目录。所有外部的依赖都应添加到extlib目录。配置 azkaban Web客户端的MySQL实例,需要将连接参数添加到azkaban.properties。
database.type = MySQL
mysql.port = 3306
mysql.host = localhost
mysql.database = azkaban
mysql.user = azkaban
mysql.password = azkabanmysql.numconnections = 100
目前,MySQL是 azkaban 唯一支持的数据存储类型。所以
database.type
应该永远是MySQL
。建立UserManager
azkaban 使用
UserManager
提供身份验证和用户角色。默认,azkaban使用
XmlUserManager
它从azkaban-users.xml
文件获取用户名/密码以及角色,可以在azkaban.properties
文件看到。user.manager.class = azkaban.user.XmlUserManager
user.manager.xml.file = conf/azkaban-users.xml
运行Web Server
下面的属性
azkaban.properties
用于配置jetty。jetty.maxThreads = 25
jetty.ssl.port = 8443
执行
bin/azkaban-web-start.sh
启动AzkabanWebServer。要关闭AzkabanWebServer,运行斌bin/azkaban-web-shutdown.sh
可以通过浏览器访问Web Server。
设置Azkaban Executor Server
azkaban-executor-server 处理工作流程和 job 的实际执行。
安装executor-server
下载azkaban-exec-server软件包下载页面。
另外,您也可以克隆GitHub库,你可以构建最新版本的主分支。看到这里的说明,从源代码构建。
解压软件包。安装路径应该与azkaban Web server 不同。提取后,应该有以下目录。
在
conf
目录中,我们只需要配置azkaban.properties
文件。此文件是为主要的配置文件,azkaban executor必须有此配置文件。
设置DB
如果你还没有得到MySQL JDBC驱动程序,你可以从它这个链接。
移动这个jar到
extlib
目录。所有外部的依赖都添加到extlib目录。将需要的连接参数添加到azkaban.properties。
database.type = mysql
mysql.port = 3306
mysql.host = localhost
mysql.database = azkabanmysql.user = azkaban
mysql.password = azkaban
mysql.numconnections = 100
目前,MySQL是在azkaban唯一支持的数据存储类型。所以
database.type
应该永远是MySQL的
。配置AzabanWebServer和AzkabanExecutorServer客户
executor server 需要设置一个端口,AzabanWebServer需要知道此端口。
以下属性需要在AzkabanExecutorServer的设置azkaban.properties。
#azkaban executor 的配置
executor.maxThreads = 50executor.port = 12321
executor.flow.threads = 30
单 Executor 模式
默认
executor.port
被设置为12321。AzkabanWebServer 需要指向这个端口。在AzkabanWebServer的azkaban.properties文件中进行设置。
executor.port = 12321
多 Executor 模式
如果我们想在多 executor 模式下运行程序,那我们需要有多个webserver 。azkaban.properties文件中必须有以下azkaban.use.multiple.executors 和 azkaban.executorselector.comparator.* 。请注意,在多executor模式下
azkaban.use.multiple.executors
并不荣幸。azkaban.use.multiple.executors =true
azkaban.executorselector.filters = StaticRemainingFlowSize,MinimumFreeMemory,CpuStatusazkaban.executorselector.comparator.NumberOfAssignedFlowComparator = 1
azkaban.executorselector.comparator.Memory = 1
azkaban.executorselector.comparator.LastDispatched = 1
azkaban.executorselector.comparator.CpuUsage = 1
需要重启服务,才可以加载这些修改。
运行 Executor Server
执行
bin/azkaban-exec-start.sh
启动AzkabanExecutorServer。要关闭AzkabanExecutorServer,运行bin/azkaban-exec-shutdown.sh
配置多 Executor 模式
目前 Executor 管理 UI。 Executor 需要在数据库中进行配置。例如: -
insert into executors(host,port) values("EXECUTOR_PORT",EXECUTOR_PORT);
设置 Azkaban 插件
Azkaban 的非核心功能被设计为基于插件,这样做是为了
- 在不同的环境下,在不改变Azkaban 核心时,可以选择性地安装/升级
- 这让 Azkaban 在不同的系统上非常容易扩展。
眼下,azkaban 允许多种不同的插件。在 Web server 端,有
- 浏览器插件,可以自定义网页丰富Azkaban的功能。已知的一些实现包括HDFS文件系统浏览器,Reportal。
- 触发插件,可以自定义触发方式。
- 用户管理器插件,允许自定义用户身份验证方法。例如,在LinkedIn我们有基于LDAP的用户认证。
- 报警器插件,使用不同的报警方式给用户,除了基于电子邮件的警报。
在 executor server 端
- 可插拔的 job 类型 executor,如Hadoop的生态中的 job 类型。
我们推荐 Azkaban 的安装这些插件。常见的插件都可以下载页面下载。另外,通过克隆GitHub库,您可以运行
ant
在不同的插件目录中创建tar ball 包。下面是如何安装这些插件到Azkaban的说明
用户管理器插件
默认情况下,azkaban 使用 XMLUserManager类及
conf/azkaban-users.xml
管理权限。这是不安全的,不能服务于许多用户。在实际生产部署,应该依赖与适合自己的用户管理器类,比如基于LDAP的。该
XMLUserManager
仍然可以用于特殊帐户和角色的管理。要安装自己的用户管理器类,指定
Azkaban2-web-server-install-dir/conf/azkaban.properties
:user.manager.class = MyUserManagerClass
并把jar放到
plugins
目录中。浏览器插件
HDFS浏览器插件
HDFS浏览器插件的安装应AzkabanWebServer plugins目录下,它被指定在AzkabanWebServer的配置文件,例如,在
Azkaban2-web-server-install-dir/conf/azkaban.properties
:viewer.plugins = HDFS
这是告诉 azkaban 载入HDFS浏览器插件从
Azkaban2-web-server-install-dir/plugins/viewer/hdfs
。提取
azkaban-hdfs-viewer
归档到AzkabanWebServer ./plugins/viewer
目录。重命名为HDFS
,跟上面指定的一样。- 如果Hadoop是非安全启动,默认的配置也够用了。我们可以简单地重启
AzkabanWebServer
,就可以使用HDFS界面了 - 如果Hadoop是安全启动,下面的就不同于默认值了,需要修改下,在插件的配置文件:
azkaban.should.proxy
Azkaba 是否应代理为其他用户查看HDFS文件系统,而不是azkaban本身,默认为true
hadoop.security.manager.class
所使用的安全管理器,它处理与Hadoop集群的通话,默认为azkaban.security.HadoopSecurityManager_H_1_0
认(对于hadoop的1.x版)proxy.user
在azkaban的用户配置使用Kerberos和Hadoop。类似于如何Oozie的应配置,用于安全的hadoop安装proxy.keytab.location
该密钥表文件与阿兹卡班可以使用Kerberos身份验证为指定的位置proxy.user
欲了解更多Hadoop的安全相关的信息,请参阅HadoopSecurityManager
job类型插件
azkaban有一组内置的作业类型仅限于运行本地UNIX命令和简单的Java程序。在大多数情况下,你会想安装其他作业类型的插件,例如,hadoopJava,pig,hive,VoldemortBuildAndPush等。下面是如何安装:
job类型插件应该在AzkabanExecutorServer的plugins目录进行安装,并在AzkabanExecutorServer的配置文件中指定。例如,在
Azkaban2-exec-server-install-dir/conf/azkaban.properties
:azkaban.jobtype.plugin.dir =plugins/jobtypes
这告诉azkaban加载
Azkaban2-exec-server-install-dir/plugins/jobtypes
下所有作业类型。解压到AzkabanExecutorServer ./plugins/
目录下,重命名为jobtypes
如上面的规定。当您运行Hadoop作业时,通常需要下面的设置:
hadoop.home
您的$HADOOP_HOME
设置。jobtype.global.classpath
特定的集群的hadoop资源,如hadoop-core jar及hadoop的配置(例如,${hadoop.home}/hadoop-core-1.0.4.jar,${hadoop.home}/conf
)取决于如果hadoop的安装被接通上:参数 描述
- 如果Hadoop的安装没有安全开启,你可能可以依靠的默认设置。
- 如果Hadoop的安装确实有Kerberos身份验证打开,您需要填写以下Hadoop的设置:
hadoop.security.manager.class
所使用的安全管理器,它处理通话以固定的hadoop簇,默认为azkaban.security.HadoopSecurityManager_H_1_0(对于hadoop的1.x版)
proxy.user
在阿兹卡班的用户配置使用Kerberos和Hadoop。类似于如何Oozie的应配置,用于安全的hadoop安装proxy.keytab.location
该密钥表文件与阿兹卡班可以使用Kerberos身份验证指定的proxy.user的位置欲了解更多Hadoop的安全相关的信息,请参阅HadoopSecurityManager
最后,启动执行程序,注意有无错误信息,并检查执行程序服务器日志。对于作业类型的插件,执行者应该做最小测试,检验是否正确安装。
从2.1升级数据库
如果从头开始安装阿兹卡班,你可以忽略这个文件。这是只对那些谁是升级为2.1〜2.5。
所述update_2.1_to_3.0.sql
需要运行以改变所有的表。这包括几个表改变和新表。
下面是变化:
- 改变project_properties表“
- 修改“名称”栏中为255个字符
- 创建新表的触发器
从2.1导入现有时刻表
在3.0中,调度系统将合并到新的触发系统。这些信息将被保存在触发器
表中的DB。我们必须导入现有的日程安排到这个新表的简单工具。
在您下载并安装Web服务器,请运行此命令后,从网络服务器安装目录:
$庆典斌/ schedule2trigger.sh
从2.7.0升级数据库
如果从头开始安装阿兹卡班,你可以忽略这个文件。这是只对那些谁是升级,从2.7到3.0。
的create.executors.sql,update.active_executing_flows.3.0.sql,update.execution_flows.3.0.sql
和create.executor_events.sql
需要运行以改变所有的表。这包括几个表改建和两个新表。
下面是变化:
- 改变active_executing_flows表“
- 删除“端口”列
- 删除“主机”列
- 改变execution_flows表“
- 添加“executor_id”列
- 创建新的遗嘱执行人表
- 创建新的遗嘱执行人事件表
0 0
- 二、azkaban 指南
- Azkaban——安装指南
- Azkaban初步使用(二)
- Azkaban
- 任务调度器之azkaban(二)
- Azkaban文档
- Azkaban调研
- azkaban搭建
- azkaban简介
- Azkaban文档
- Azkaban博客
- [official] Azkaban
- Azkaban文档
- Azkaban调研
- Azkaban安装
- Azkaban实战
- Azkaban文档
- azkaban入门
- PHP运行模式
- 正则
- VC++模拟键盘输入(keybd_event() 、 PostMessage() /SendMessage()、SendInput())详解
- VS2010 CUDA 5.5 Win7 64位配置以及项目创建配置
- 开发整理-Javaweb应用的系统升级功能
- 二、azkaban 指南
- Java2_JDK的安装和配置
- php 如何生成静态页
- C语言对文件的操作
- UVA 11090 Going in Cycle!(BellmanFord+二分)
- 第四节.持久化操作
- 打印格式
- 基于感知哈希的视觉目标跟踪算法代码
- 单点登录