安装 azkaban
请按照以下步骤开始:
1.克隆回购:
git clone https://github.com/azkaban/azkaban.git
2.构建Azkaban并创建安装包:
cd azkaban; ./gradlew build installDist
3.启动独奏服务器:
cd azkaban-solo-server/build/install/azkaban-solo-server; bin/start-solo.sh
Azkaban solo服务器应全部设置,通过8081默认监听端口接受传入的网络请求。所以,打开一个Web浏览器并查看http://localhost:8081/
4.停止服务器:
bin/shutdown-solo.sh
独立服务器安装应包含以下目录。
夹描述箱子用于启动/停止Azkaban solo服务器的脚本
CONF Azkaban solo服务器的配置文件
LIB Azkaban的jar依赖项
EXTLIB 添加到extlib的其他jar将添加到Azkaban的类路径中
插件可以安装插件的目录
卷筒纸 Azkaban Web服务器的Web(css,javascript,image)文件
在conf目录中,应该有三个文件:
azkaban.private.properties - 由Azkaban用于存储Mysql密码等秘密
azkaban.properties - Azkaban用于运行时参数
global.properties - 作为共享属性传递给每个工作流和作业的全局静态属性。
azkaban-users.xml - 用于添加用户和角色以进行身份验证。如果XmLUserManager未设置为使用它,则不使用此文件。
该文件是主配置文件。The azkaban.properties
配置HTTPS服务器(可选)
默认情况下,Azkaban solo服务器不使用SSL。但您可以在独立的Web服务器中以相同的方式设置它。方法如下:
Azkaban Web服务器支持SSL套接字连接器,这意味着密钥库必须可用。您可以按照步骤生成此处提供的有效jetty密钥库。创建密钥库文件后,必须为Azkaban提供其位置和密码。内azkaban.properties或azkaban.private.properties(推荐),下面的属性应该被覆盖。
jetty.keystore=keystore
jetty.password=password
jetty.keypassword=password
jetty.truststore=keystore
jetty.trustpassword=password
并在azkaban.properties中配置ssl端口:
jetty.ssl.port=8443
Multi Executor Server入门
数据库设置
我们建议用户选择Mysql作为Azkaban数据库,因为我们建立了一些Mysql连接增强功能,以方便AZ设置,并增强服务可靠性:
安装Mysql
这些说明不会涵盖MySQL DB的安装,但您可以访问MySQL文档站点上的说明。
设置Mysql
为Azkaban创建数据库:
Example database creation command, although the db name doesn’t need to be ‘azkaban’
mysql> CREATE DATABASE azkaban;
为Azkaban创建一个mysql用户。例如,:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
give the user INSERT, SELECT, UPDATE, DELETE permission on all tables in the Azkaban db.
GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to ''@'%' WITH GRANT OPTION;
可能需要重新配置Mysql数据包大小。默认情况下,MySQL可能具有可笑的低允许数据包大小。要增加它,您需要将属性max_allowed_packet设置为更高的数字,比如1024M。要在linux中配置它,请打开/etc/my.cnf。在mysqld之后的某处,添加以下内容:
[mysqld]
max_allowed_packet=1024M
要重新启动MySQL,您可以运行:
$ sudo /sbin/service mysqld restart
创建Azkaban表
从MySQL实例上的最新表语句运行单个表创建脚本以创建表。
或者,运行构建过程生成的create-all-sql- .sql。/Users/latang/LNKDRepos/azkaban/azkaban-db/build/distributions/azkaban-db-在您构建azkaban-db模块之后,该位置是文件所在
cd azkaban-db; …/gradlew build installDist
安装阿兹卡班执行人服务器
Azkaban Executor Server处理工作流和作业的实际执行。您可以从主分支构建最新版本。有关从源构建的说明,请参阅此处。
在gradle构建之后,将包(执行程序分发tar.gz从build文件夹)解压缩到一个目录中。应该有以下目录。
夹 描述
箱子 用于启动/停止Azkaban solo服务器的脚本
CONF Azkaban solo服务器的配置文件
LIB Azkaban的jar依赖项
EXTLIB 添加到extlib的其他jar将添加到Azkaban的类路径中
插件 可以安装插件的目录
为了快速入门,我们可以直接使用gradle生成的安装目录azkaban / azkaban-exec-server / build / install / azkaban-exec-server。我们只需要在里面更改mysql用户名和密码azkaban.properties:
Mysql Configs
mysql.user=
mysql.password=
然后运行:
cd azkaban-solo-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
然后,一个执行器就可以使用了。用户可以通过分发和部署多个执行程序安装分发来设置多个执行程序。
安装Azkaban Web服务器
Azkaban Web Server处理项目管理,身份验证,调度和执行触发器。您可以从主分支构建最新版本。有关从源构建的说明,请参阅此处。
在gradle构建之后,将包(执行程序分发tar.gz从build文件夹)解压缩到一个目录中。应该有以下目录。
夹 描述
箱子 用于启动/停止Azkaban solo服务器的脚本
CONF Azkaban solo服务器的配置文件
LIB Azkaban的jar依赖项
卷筒纸 Azkaban Web服务器的Web(css,javascript,image)文件
为了快速入门,我们可以直接使用gradle生成的安装目录azkaban / azkaban-web-server / build / install / azkaban-web-server。我们只需要在里面更改mysql用户名和密码azkaban.properties:
Mysql Configs
mysql.user=
mysql.password=
然后跑
cd azkaban-web-server/build/install/azkaban-web-server
./bin/start-web.sh
然后,多执行器Azkaban实例就可以使用了。打开Web浏览器并查看http://localhost:8081/ 您已设置为登录Azkaban UI。
设置Azkaban插件
Azkaban旨在使基于插件的非核心功能成为可能
它们可以在不改变核心Azkaban的情况下在不同的环境中有选择地安装/升级
它使Azkaban很容易扩展到不同的系统。
现在,Azkaban允许使用许多不同的插件。在Web服务器端,有
查看器插件,使自定义网页能够向Azkaban添加功能。一些已知的实现包括HDFS文件系统查看器和Reportal。
触发插件,启用自定义触发方法。
用户管理器插件,启用自定义用户身份验证方法。例如,在LinkedIn中,我们有基于LDAP的用户身份验证。
警报器插件,除了基于电子邮件的警报之外,还为用户启用不同的警报方法。
在执行程序服务器端
AzkabanExecutorServer上的可插入作业类型执行程序,例如hadoop生态系统组件的作业类型。
我们建议安装这些插件以最好地使用Azkaban。以下是如何安装这些插件以使用Azkaban的说明。
用户管理器插件
默认情况下,Azkaban附带XMLUserManager类,该类根据xml文件对用户进行身份验证,该文件位于 conf/azkaban-users.xml。
这不安全,不能为很多用户服务。在实际生产部署中,您应该依赖自己的用户管理器类,例如基于LDAP的用户管理器类。该XMLUserManager仍可用于特殊用户帐户和管理用户角色。您可以在默认azkaban-users.xml文件中找到这两种情况的示例。
要安装自己的用户管理器类,请在Azkaban-web-server-install-dir/conf/azkaban.properties:中指定 :
user.manager.class=MyUserManagerClass
并将包含jar放在plugins目录中。
查看器插件
HDFS查看器插件
HDFS查看器插件应安装在AzkabanWebServer插件目录中,该目录在AzkabanWebServer的配置文件中指定,例如Azkaban-web-server-install-dir/conf/azkaban.properties:
viewer.plugins=hdfs
这告诉Azkaban从中加载hdfs viewer插件 Azkaban-web-server-install-dir/plugins/viewer/hdfs。
将azkaban-hdfs-viewer存档解压缩到AzkabanWebServer ./plugins/viewer目录。hdfs如上所述,将目录重命名为。
具体取决于hadoop安装是否已打开:
如果Hadoop安装没有打开安全性,则默认配置足够好。可以简单地重新启动 AzkabanWebServer并开始使用HDFS查看器。
如果Hadoop安装确实打开了安全性,则应在插件的配置文件中将以下配置设置为与其默认值不同:
参数 描述
azkaban.should.proxy Azkaban是否应该代理另一个用户来查看hdfs文件系统,而不是Azkaban本身,默认为 true
hadoop.security.manager.class 要使用的安全管理器处理与安全hadoop集群的通信,默认为 (对于hadoop 1.x版本)azkaban.security.HadoopSecurity Manager_H_1_0
proxy.user Azkaban用户配置了kerberos和hadoop。类似于应如何配置oozie,用于安全的hadoop安装
proxy.keytab.location 密钥表文件的位置,Azkaban可以使用Kerberos对指定的文件进行身份验证 proxy.user
有关更多Hadoop安全相关信息,请参阅HadoopSecurityManager。
作业类型插件
Azkaban有一组有限的内置作业类型来运行本地unix命令和简单的java程序。在大多数情况下,您需要安装其他作业类型插件,例如hadoopJava,Pig,Hive,VoldemortBuildAndPush等。一些常见的插件包含在azkaban-jobtype存档中。以下是如何安装:
作业类型插件应与AzkabanExecutorServer的插件目录一起安装,并在AzkabanExecutorServer的配置文件中指定。例如,在 Azkaban-exec-server-install-dir/conf/azkaban.properties:
azkaban.jobtype.plugin.dir=plugins/jobtypes
这告诉Azkaban从中加载所有作业类型 Azkaban-exec-server-install-dir/plugins/jobtypes。将存档解压缩到AzkabanExecutorServer ./plugins/目录,将其重命名jobtypes为如上所述。
运行Hadoop作业时,通常需要以下设置:
参数 描述
hadoop.home 你的 H A D O O P H O M E 设 置 。 j o b t y p e . g l o b a l . c l a s s p a t h 集 群 特 定 的 h a d o o p 资 源 , 例 如 h a d o o p − c o r e j a r 和 h a d o o p c o n f ( 例 如 ) HADOOP_HOME设置。 jobtype.global.classpath 集群特定的hadoop资源,例如hadoop-core jar和hadoop conf(例如 ) HADOOPHOME设置。jobtype.global.classpath集群特定的hadoop资源,例如hadoop−corejar和hadoopconf(例如){hadoop.home}/hadoop-core-1.0. 4.jar,${hadoop.home}/conf
具体取决于hadoop安装是否已打开:
如果hadoop安装没有打开安全性,则可能依赖于默认设置。
如果Hadoop安装确实打开了kerberos身份验证,则需要填写以下hadoop设置:
参数 描述
hadoop.security.manager.class 要使用的安全管理器处理与安全hadoop集群的通信,默认为 (对于hadoop 1.x版本)azkaban.security.HadoopSecurity Manager_H_1_0
proxy.user Azkaban用户配置了kerberos和hadoop。类似于应如何配置oozie,用于安全的hadoop安装
proxy.keytab.location 密钥表文件的位置,Azkaban可以使用Kerberos为指定的proxy.user进行身份验证
有关更多Hadoop安全相关信息,请参阅HadoopSecurityManager。
最后,启动执行程序,注意错误消息并检查执行程序服务器日志。对于作业类型插件,执行程序应进行最低限度的测试,并告知您是否已正确安装。