Azkaban-2.5及Plugins的安装配置
Azkaban是由LinkedIn开发的调度工具,可以用于调度Hadoop中的相互依赖的Job。有时候,在Hadoop集群中运行的Job是相互依赖的,某些任务需要顺序的执行,这种场景下使用Azkaban能够很好的解决问题。
Azkaban有三个重要的组件构成:
- 关系型数据库(MySQL)
- AzkabanWebServer
AzkabanExecutorServer
这三个组件的关系如下:
本文主要是为了快速的搭建一个可用的Azkaban系统,不会对各组件的作用和实现原理做过多分析。
Azkaban有三种安装部署模式,本文选择的是将WebServer和ExecutorServer分开部署的模式。
一、组件下载
上文中提到,Azkaban系统有三个组件,在后面还会为Azkaban安装一些插件。
1、MySQL脚本
azkaban-sql-script-2.5.0.tar.gz
2、Azkaban Web Server
azkaban-web-server-2.5.0.tar.gz
3、Azkaban Executor Server
azkaban-executor-server-2.5.0.tar.gz
4、Azkaban Plugins
- HDFS Browser azkaban-hdfs-viewer-2.5.0.tar.gz
- Job Types Plugins azkaban-jobtype-2.5.0.tar.gz
- Azkaban Security Manager azkaban-hadoopsecuritymanager-2.5.0.jar
二、环境准备
在接下来的安装中,使用到两台机器,机器列表和各组件的安装位置如下表:
服务名 | 机器名 |
---|---|
MySQL | m000 |
Executor Server | m001 |
Web Server | client |
Executor Server和Web Server都安装在/usr/local路径下,以下都用$AK_HOME
代替。
三、Azkaban安装
1、MySQL
解压缩前面下载的azkaban-sql-script-2.5.0.tar.gz,执行其中的create-all-sql-2.5.0.sql文件,建好Azkaban需要用到的表。
2、Azkaban Web Server
(1)将azkaban-web-server-2.5.0.tar.gz在client的/usr/local路径下解压缩
azkaban-web-server解压缩后的目录结构如下图所示:
(2)修改配置文件
在$AK_HOME/conf
路径下,有两个文件
azkaban.properties,Azkaban系统参数
azkaban-users.xml,XmlUserManager模式下的用户管理文件
这里主要配置azkaban.properties文件中的参数。
#Azkaban Personalization Settings
#zkaban-web-server-2.5.0.tar.gzAzkaban Personalization Settings
azkaban.name=Azkaban #主标题
azkaban.label=My Local Azkaban #副标题
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai #时区
#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
# 数据库配置
database.type=mysql
mysql.port=3306
mysql.host=m000
mysql.database=azkaban # 数据库名与上一步新建的database保持一致
mysql.user=root
mysql.password=root
mysql.numconnections=100
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8888
jetty.port=8081
jetty.keystore=web/keystore
jetty.password=azkaban
jetty.keypassword=azkaban
jetty.truststore=web/truststore
jetty.trustpassword=azkaban
# Azkaban Executor settings
executor.port=12321 #指定executor的port
executor.host=m001 #指定executor所在机器
# mail settings
mail.sender=
mail.host=
job.failure.email=
job.success.email=
lockdown.create.projects=false
这里面比较麻烦的是jetty的相关配置。需要与下一步的相对应。
(3)配置SSL的KeyStore
在需要输入密码的地方,输入上面配置文件中的password参数,我的密码是azkaban。
keytool -genkey -keystore keystore -alias jetty-azkaban -keyalg RSA -validity 3560
keytool -export -alias jetty-azkaban -keystore keystore -rfc -file selfsignedcert.cer
keytool -import -alias certificatekey -file selfsignedcert.cer -keystore truststore
将上面生成的keystore和truststore文件移动到$AK_HOME/web
路径下。
如果需要删除,使用如下命令。
keytool -delete -alias jetty-azkaban -keystore keystore -storepass azkaban
(4)启动Web Server
$AK_HOME/bin/azkaban-web-start.sh
启动后,日志中显示
接下来可以在Web页面中访问,输入https://client:8888
。一定看清楚在前面输入的是https。
正常情况下,就可以在页面上看到Azkaban的登录页面了,如下图。这里输入的用户名是azkaban-users.xml中配置的,默认情况下用户名密码都使用azkaban可进入web页面。
3、Azkaban Executor Server
将下载的azkaban-executor-server-2.5.0.tar.gz 文件在m001的/usr/local路径下解压缩,目录结构如下图
这里主要配置的是$AK_HOME/conf
路径下的azkaban.properties文件。
完整内容如下:
#zkaban-executor-server-2.5.0.tar.gz Azkaban
default.timezone.id=Asia/Shanghai
# Azkaban JobTypes Plugins
azkaban.jobtype.plugin.dir=plugins/jobtypes
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
database.type=mysql
mysql.port=3306
mysql.host=m000
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100
# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.host=m001
executor.flow.threads=30
配置好后,使用命令AK_HOME/bin/azkaban-executor-start.sh
启动Azkaban Executor Server服务。
到这里,就可以在Azkaban的web页面中配置任务并进行简单的操作了。接下来为Azkaban安装一些重要的插件。
四、Azkaban Plugins安装
Azkaban在设计上把核心功能和扩展插件分开了,因此可以很方便的为Azkaban安装一些有用的插件。目前已有的插件主要有以下几类:
- 页面可视化插件。比如HDFS View和Reportal
- Trigger插件
- 用户管理插件。可以自定义一些用户登录验证功能
报警插件
接下来对每一种插件的安装和配置进行分析,某些插件安装在Web端,某些插件需要安装在Executor端。
1、HDFS Viewer Plugins
这个插件安装在Web端。
(1)修改配置文件
在$AK_HOME/conf/azkaban.properties
文件中新增一行,viewer.plugins=hdfs
。这个参数会告诉Azkaban到$AK_HOME/plugins/viewer/hdfs
路径下去寻找新的插件。所以,我们需要在$AK_HOME/plugins/
路径下新建一个viewer文件夹,并将azkaban-hdfs-viewer-2.5.0.tar.gz解压缩,重命名为hdfs。
(2)配置依赖jar包
Azkaban-2.5.0找不到HDFS相关的jar包,需要用户指定。
一定要删除$AK_HOME/plugins/viewer/hdfs/extlib/hadoop-core-1.0.4.jar
,不然会报ClassNotFound的错。删除后,该插件的extlib路径下已为空。
将hadoop中如下jar包复制到$AK_HOME/extlib
路径下:
commons-cli-1.2.jar
hadoop-auth-2.6.0.jar
hadoop-common-2.6.0.jar
hadoop-hdfs-2.6.0.jar
protobuf-java-2.5.0.jar
htrace-core-3.0.4.jar
在hadoop-common-2.6.0.jar文件中,有一个core-default.xml文件,要把自己的hadoop配置文件中的core-site.xml文件添加到该jar包的根目录下。
在Linux中,往jar包中新增文件,按照如下步骤:
(1)将$HADOOP_HOME/etc/hadoop/core-site.xml
文件复制到$Ak_HOME/extlib
(2)在$Ak_HOME/extlib
路径下使用jar -uf hadoop-common-2.6.0.jar core-site.xml
命令将core-site.xml文件添加到jar包中
最终hadoop-common-2.6.0.jar的文件结构如下图:
启动Web Server,在页面中就可以看到HDFS文件目录了。
也可以直接打开hdfs上的可读文件。
上面的htrace-core-3.0.4.jar也是必须的jar包,没有这个的话,会报错java.lang.NoClassDefFoundError: org/htrace/Trace
,如下图
2、Azkaban Jobtype
这个插件安装在Executor Server端。
Azkaban可以运行一些简单的Job比如Unix命令行操作以及简单的Java程序。如果需要运行HadoopJava,Pig,Hive等类型的Job时,就需要安装这个插件了。
安装Jobtype插件需要预先安装好Hadoop和Hive。我的Hadoop版本为2.6.0,安装路径/usr/local/hadoop
,Hive版本0.13.1,安装路径/usr/local/hive
(1)解压缩
将前面下载的azkaban-jobtype-2.5.0.tar.gz上传到m001的$AK_HOME/plugins
路径下,解压缩,并重命名为jobtypes。
现在查看该目录结构:
(2)Executor Server配置文件修改
修改$AK_HOME/conf/azkaban.properties
,在最后新增一行
azkaban.jobtype.plugin.dir=plugins/jobtypes
这个参数告诉Azkaban到$AK_HOME/plugins/jobtypes
路径中加载新的jobtype插件。
(3)修改Jobtype配置文件
(a)首先修改$AK_HOME/plugins/jobtypes/common.properties
文件,设置以下三个参数:
hadoop.home=/usr/local/hadoop
hive.home=/usr/local/hive
#pig.home=
#azkaban.should.proxy=
jobtype.global.classpath=${hadoop.home}/etc/hadoop,${hadoop.home}/share/hadoop/common/*,${hadoop.home}/share/hadoop/common/lib/*,${hadoop.home}/share/hadoop/hdfs/*,${hadoop.home}/share/hadoop/hdfs/lib/*,${hadoop.home}/share/hadoop/yarn/*,${hadoop.home}/share/hadoop/yarn/lib/*,${hadoop.home}/share/hadoop/mapreduce/*,${hadoop.home}/share/hadoop/mapreduce/lib/*
(b)修改$AK_HOME/plugins/jobtypes/commonprivate.properties
文件中的hadoop.home
和hive.home
(c)修改$AK_HOME/plugins/jobtypes/private.properties
文件,设置以下参数:
jobtype.classpath=${hive.home}/conf,${hive.home}/lib/*
最后重新重启Azkaban Executor Server,使新的插件生效。
Azkaban-2.5及Plugins的安装配置的更多相关文章
- azkaban编译安装配置文档
azkaban编译安装配置文档 参考官方文档: http://azkaban.github.io/azkaban/docs/latest/ azkaban的配置文件说明:http://azkaban. ...
- azkaban(安装配置加实战)
为什么需要工作流调度系统 一个完整的数据分析系统通常都是由大量任务单元组成:shell 脚本程序,java 程序,mapreduce 程序.hive 脚本等 各任务单元之间存在时间先后及前后依赖关 ...
- Azkaban-开源任务调度程序(安装篇)
最近项目迁移到新集群,试试同事推荐的开源任务调度程序-azkaban(阿兹卡班),没看错,就是哈利波特里的阿兹卡班,azikaban主要用来解决hadoop依赖任务的执行,但是它本身支持linux和j ...
- RabbitMQ服务安装配置
RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.RabbitMQ据说具有良 ...
- Erlang&RabbitMQ服务安装配置
RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.RabbitMQ据说具有良 ...
- CentOS 7 Hadoop安装配置
前言:我使用了两台计算机进行集群的配置,如果是单机的话可能会出现部分问题.首先设置两台计算机的主机名 root 权限打开/etc/host文件 再设置hostname,root权限打开/etc/hos ...
- Eclipse安装配置PyDev插件
Eclipse安装配置PyDev插件 关于PyDev PyDev是一个功能强大的 Eclipse插件,使用户可用 Eclipse 来进行 Python 应用程序的开发和调试.PyDev 插件的出现方便 ...
- linux入侵检测系统snort安装配置
队长让俺瞅瞅snort,没想到安装配置都遇到问题...整理下过程,给跟我一样的家伙看看.. 由于本人机器是ubuntu,apt-get 几下就可以了,其实网上有不少这样的文章...之所以还要写就是.. ...
- Bind安装配置及应用
Bind安装配置及应用 BIND:Berkeley Internet Name Domain ,ISC.org DNS服务的实现: 监听端口:53/UDP , 53/TCP 程 ...
随机推荐
- C# WinForm 富文本编辑器 用kindeditor实现本地图片只选取不上传到编辑器
以下资料有参考网上其它童鞋作品,原作者看到务喷!!!! 以下资料有参考网上其它童鞋作品,原作者看到务喷!!!! 重要的事只要说两遍... 网上找了几天关于WinForm富文本编辑效果都不理想,各种坑, ...
- mongol学习
启动mongodb 服务器: 进入mongodb文件夹:cd ~/mongodb 第一次先要创建set与log文件夹. mkdir set; mkdir log; 并创建 ...
- [LeetCode] The Maze 迷宫
There is a ball in a maze with empty spaces and walls. The ball can go through empty spaces by rolli ...
- DDCTF 2018线上赛writeup
第一题: d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e ...
- java--Iterator迭代问题:集合并发访问异常
用Iterator对数组进行迭代后,如果在迭代过程中对数组进行增加元素操作(这里iterator本身没有提供增加操作方法)时,就会抛出并发访问异常: 异常如下: Exception in thread ...
- 初级Django学习
创建Django项目django-admin startproject project_test1 新建应用:python manage.py startapp booktest admin: 权限管 ...
- Centos常用命令之:VI
在Linux中,对文件内容的编辑莫过去vi命令了,它是每个发布版本中的标配.并且功能强大. 在vi中一共有三种模式,一般模式(命令参照),编辑模式(命令参照)与命令模式(命令参照). ◇一般模式:当我 ...
- [Codeforces 920E]Connected Components?
Description 题库链接 给你一个 \(n\) 个点 \(m\) 条边的无向图,求其补图的连通块个数及各个连通块大小. \(1\leq n,m\leq 200000\) Solution 参考 ...
- 计蒜客NOIP模拟赛4 D1T1 小X的质数
小 X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感.小 X 认为,质数是一切自然数起源的地方. 在小 X 的认知里,质数是除了本身和 1以外,没有其他因数的数字. 但由于小 X ...
- poj 3070 Fibonacci 矩阵快速幂
Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. F ...