安装规划

IP 角色 端口
10.31.1.88 azkaban web server https://10.31.1.88:8443 http://10.31.1.88:8081
10.31.1.89 executor
10.31.1.90 executor

安装azkban

1.安装配置数据库

1.安装mysql



2.为azkaban创建数据库和用户,并授权

mysql> CREATE DATABASE azkaban;
mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';
mysql> GRANT ALL ON <database>.* to '<username>'@'%' WITH GRANT OPTION;

3.修改mysql配置文件 /etc/my.cf

[mysqld]

max_allowed_packet=1024M

设置最大传输包.然后重启mysql

$ sudo /sbin/service mysqld restart

4.创建azkaban表

执行安装包目录下的sql目录中的所有文件,不包括以update开头的:

mysql> source create.executors.sql

2.下载安装web server

1.下载源码包

http://azkaban.github.io/downloads.html 下载azkaban的source包,然后按以下步骤编译:

# Build Azkaban
./gradlew build # Clean the build
./gradlew clean # Build and install distributions
./gradlew installDist # Run tests
./gradlew test # Build without running tests
./gradlew build -x test

编译完成后目录如下:



标红框的三个是要用到的,分别是exector\solo-server\webserver.

其中solo-server包含的azkaban的配置文件:

打开azkaban-master/azkaban-solo-server/build/install/azkaban-solo-server目录,下面就是编译好的soloserver:



将下面的conf\plugins\sql复制到azkaban-webserver所在的目录:azkaban-master/azkaban-web-server/build/install/azkaban-web-server

将下面的conf\plugins复制到azkaban-executor所在的目录:azkaban-master/azkaban-exec-server/build/install/azkaban-exec-server

然后将azkaban-webserver目录分别压缩成azkaban-webserver.gz和azkaban-exec-server.gz,分发到要装webserver和executor的机器上.

AZKABAN的目录结构:



在conf目录下有以下配置文件:

  • azkaban.properties - Azkaban运行时参数,主配置文件
  • global.properties - 全局静态参数,每个workflow和job都可以读取
  • azkaban-users.xml - 用户验证文件。使用XmLUserManager时才需要使用这个文件

2.配置SSL

a.生成keystore

keytool -keystore keystore -alias jetty -genkey -keyalg RSA

所有输入都写azkaban

b.配置azkaban.properties中SSL的设置

修改password,并将创建的keystore文件复制到webserver目录下

jetty.keystore=keystore #设置key位置
jetty.password=password
jetty.keypassword=password
jetty.truststore=keystore
jetty.trustpassword=password

3.设置数据库连接信息

在azkaban.properties:

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

4.配置azkaban用户

在azkaban.properties,设置用户管理使用类,及用户配置的xml

user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml

在azkaban-users.xml中设置用户:

6.设置web server的端口

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

设置executor连接webserver的端口

执行bin/azkaban-web-start.sh启动web server,访问https://xxx.xxx.xxx.xxx:8443 访问web页面

目前https端口没启动成功,请使用http://10.31.1.88:8081

3.安装mulit executor

1.executor的目录结构



executor只有一个配置文件conf/azkaban.propertie

2.数据库设置

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

3.设置executorclient

executor做为client连接到webserver

executor.maxThreads=50
executor.port=12321
executor.flow.threads=30

4.设置azkaban以mulitexecutor方式执行.

webserver的配置文件中添加:

azkaban.use.multiple.executors=true
azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
azkaban.executorselector.comparator.Memory=1
azkaban.executorselector.comparator.LastDispatched=1
azkaban.executorselector.comparator.CpuUsage=1

5.在数据库中添加executor信息

将所有的executor的信息都写入数据库中:

insert into executors(host,port) values("EXECUTOR_PORT",EXECUTOR_PORT);

经验证,不需要手动插入executor信息

6.启动所有的exectuor

bin/azkaban-executor-start.sh

4.安装azkaban插件

具体参考官方文档.略.

AZKABAN参数

参考:http://azkaban.github.io/azkaban/docs/latest/#configuration

重要参数:

参数 说明 默认值
executor.flow.threads 同时最多执行的flow的个数 30
job.log.chunk.size 日志量达到多大时向下滚动 5MB
flow.num.job.threads 每个flow并行执行的最大job数 10
job.max.Xms 每个job可以请求的最大初始内存,超过这个内存azkaban将不启动job 1GB
job.max.Xmx 每个job可以请求的最大内存,超过这个内存azkaban将不启动该job 2GB
azkaban.server.flow.max.running.minutes flow最长执行时间,超过个时间将会被kill掉,0或者负数不限制时间 -1
default.timezone azkaban的时区 America/Los_Angeles
jetty.maxThreads webserver处理的最大请求队列,即连个的executoserver个数 25
lockdown.create.projects 是否只有管理员可以创建project false
lockdown.upload.projects 是否只有管理员可以上传project zip false
azkaban.use.multiple.executors azkaban是否以multi-executor运行,需要多个executor支持 false
azkaban.executorselector.filters 根据何种过滤器选择executor
azkaban.executorselector.comparator.{ComparatorName} executor比较器

安装出现的问题

1.webserver启动异常"No active executor found"

修改数据库executors表中的active字段为1,并且在关闭exector时使用kill -9,不能使用azkaban-executor_shutdown.sh,否则要重新设置executors表中的active字段为1.

2.执行azkaban任务时,executor报错,但不影响任务的执行:

2017-07-27 16:09:49 INFO  ExecutorServlet:115 - User  has called action log on 3
2017-07-27 16:09:49 ERROR ExecutorServlet:186 - Running flow 3 not found.
azkaban.executor.ExecutorManagerException: Running flow 3 not found.
at azkaban.execapp.FlowRunnerManager.readFlowLogs(FlowRunnerManager.java:472)
at azkaban.execapp.ExecutorServlet.handleFetchLogEvent(ExecutorServlet.java:183)
at azkaban.execapp.ExecutorServlet.doGet(ExecutorServlet.java:120)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

这个问题在github有人提出同样问题,可能是azkaban的一个bug.

https://github.com/azkaban/azkaban/issues/1128

3.无法启动https端口

没有报任何错误,但无法启动https.

4.启动报错:

参考:http://blog.csdn.net/daiyutage/article/details/69526021

Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "main"

原因:缺少log4j.properties

解决办法:

在Azkaban-web-server 的conf目录下创建文件夹conf/log4j.properties:

写入以下内容

log4j.rootLogger=INFO,C

log4j.appender.C=org.apache.log4j.ConsoleAppender

log4j.appender.C.Target=System.err

log4j.appender.C.layout=org.apache.log4j.PatternLayout

log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

5.启动报错

2017-08-16 16:49:25 INFO log:67 - jetty-6.1.26

2017-08-16 16:49:25 INFO ProjectManagerServlet:134 - downloadBufferSize: 8192

2017-08-16 16:49:25 INFO RestLiAnnotationReader:1829 - Processed actions resource 'azkaban.restli.UserManagerResource'

2017-08-16 16:49:25 INFO RestLiAnnotationReader:1829 - Processed actions resource 'azkaban.restli.ProjectManagerResource'

2017-08-16 16:49:25 WARN log:76 - failed SslSocketConnector@0.0.0.0:8443: java.io.FileNotFoundException: /opt/azkaban3/azkaban-web-server/keystore #设置keyä½ç½® (No such file or directory)

2017-08-16 16:49:25 WARN log:76 - failed Server@2f6e28bc: java.io.FileNotFoundException: /opt/azkaban3/azkaban-web-server/keystore #设置keyä½ç½® (No such file or directory)

2017-08-16 16:49:25 WARN AzkabanWebServer:513 - java.io.FileNotFoundException: /opt/azkaban3/azkaban-web-server/keystore #设置keyä½ç½® (No such file or directory)

2017-08-16 16:49:25 ERROR StdOutErrRedirect:56 - /opt/azkaban3/azkaban-web-server/keystore #设置keyä½ç½® (No such file or directory)

无解.不启动ssl就可以了.

默认是启动ssl的,在azkaban.properties中设置

jetty.use.ssl=false

默认是true

2.azkaban3.0安装的更多相关文章

  1. 记:MySQL 5.7.3.0 安装 全程截图

    前言: 下一个班快讲MySQL数据库了,正好把服务器里面的MySQL卸了重装了一下. 截个图,作为笔记.也正好留给需要的朋友们. 目录: 下载软件 运行安装程序 安装程序欢迎界面 许可协议 查找更新 ...

  2. 烂泥:zabbix3.0安装与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 这个月又快过完了,最近也比较忙,没时间写文章,今天挤点时间把zabbix3.0安装与配置 ...

  3. CentOS 7.0安装配置Vsftp服务器

    一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...

  4. elasticsearch5.0.0 安装插件及配置过程

    elasticsearch5.0.0 安装插件及配置过程 由于es5.0是里程碑式的更新,所以很多变化的地方,暂时我就插件安装遇到的问题记录一下. 插件安装命令 2.3版本的安装命令 安装Marvel ...

  5. IIS和4.0安装到底有没有先后顺序解答

    在很多人或许很多技术大神都会觉得IIS的安装和4.0没得先后顺序的.其错误弊端在与IIS没有注册到4.0上. 经过今天遇到了服务器安装服务端发觉报错[无法识别的属性“targetFramework”. ...

  6. Hadoop2.6.0安装 — 集群

    文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6034187.html 这里写点 Hadoop2.6.0集群的安装和简单配置,一方面是为自 ...

  7. zabbix3.0安装部署文档

    zabbix v3.0安装部署 摘要: 本文的安装过程摘自http://www.ttlsa.com/以及http://b.lifec-inc.com ,和站长凉白开的<ZABBIX从入门到精通v ...

  8. [转]phoneGap3.0安装步骤(以windows下的android环境为例):

    phoneGap3.0安装步骤(以windows下的android环境为例): 环境: WIN系统,JDK,Android,Eclipse,Ant,Git,PhoneGap3.x (Cordova) ...

  9. Node Express 4.0 安装

    前言 今天想要用nodejs 写个后台服务,很久之前看过node express 框架,可真当向下手安装的时候,发现好多命令都不记得了.写完后台服务,没事了,总结了下安装过程,记录一下,以便以后查阅方 ...

随机推荐

  1. 通过ES6写法去对Redux部分源码解读

    在Redux源码中主要有四个文件createStore,applyMiddleware,bindActionCreators,combineRedures createStore.js export ...

  2. C++分享笔记:扑克牌的洗牌发牌游戏设计

    笔者在大学二年级期间,做过的一次C++程序设计:扑克牌的洗牌发牌游戏.具体内容是:除去大王和小王,将52张扑克牌洗牌,并发出5张牌.然后判断这5张牌中有几张相同大小的牌,是否是一条链,有几个同花等. ...

  3. java8的新特性,Collections.sort(排序的List集合)的使用,对list封装Map里面的某个值进行排序

    --------------------------对简单list的排序---------------------------------- List<Integer> list = ne ...

  4. PHPStorm等编辑器debug调试(包括使用postman、soapUI)

    很多人在开发的时候,需要进行断点调试,但是很多人配置了很多,还是调试不了,其实是不需要这么麻烦的. 注意:PHPStorm等编辑器debug的配置不用进行任何配置,默认配置就好 实质上,断点调试的时候 ...

  5. 分享一个hybrid框架ionic

    ionic 是一个 HTML5 应用程序开发框架. 可以使用 HTML.CSS 和 Javascript 构建接近原生体验的移动应用程序.具有速度快,界面现代化.美观等特点.下面一起看一下如何使用 安 ...

  6. angular 打包

    ERROR in ng:///F:/IDEWorkspace/dsmc/dsmc-front-new/trunk/src/app/routes/city-manage/component-coding ...

  7. 干货分享:QQ群排名霸屏优化规则靠前的新技术

    谈起QQ群排名的优化规则,很多人又爱又恨,原因很简单,爱他的都是引流效果是非常好的,通过关键词搜索排名好的技术,能排到全国默认前三,叫人怎能不爱他,恨的原因也恨简单,无论你的群完善的再怎么好,好像都无 ...

  8. tp5.1路由报错No input file specified.

    问题: 按照官方教安装了框架,打开首页没问题,可是安装教程路由规则打开 "http://127.0.0.1/hello/2" 时, 却报错误  "No input fil ...

  9. php_Trait

    * Trait Answer* Trait : 关键字 Trait* 使用 use* 我的理解 是为了解决php不能多继承的一个处理方式* 在使用的时候 可以让两个不相关的类 产生联系* Trait ...

  10. 第3章 Hadoop 2.x分布式集群搭建

    目录 3.1 配置各节点SSH无密钥登录 1.将各节点的秘钥加入到同一个授权文件中 2.拷贝授权文件到各个节点 3.测试无秘钥登录 3.2 搭建Hadoop集群 1.上传Hadoop并解压 2.配置H ...