2.azkaban3.0安装
安装规划
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.安装配置数据库
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 |
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安装的更多相关文章
- 记:MySQL 5.7.3.0 安装 全程截图
前言: 下一个班快讲MySQL数据库了,正好把服务器里面的MySQL卸了重装了一下. 截个图,作为笔记.也正好留给需要的朋友们. 目录: 下载软件 运行安装程序 安装程序欢迎界面 许可协议 查找更新 ...
- 烂泥:zabbix3.0安装与配置
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 这个月又快过完了,最近也比较忙,没时间写文章,今天挤点时间把zabbix3.0安装与配置 ...
- CentOS 7.0安装配置Vsftp服务器
一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...
- elasticsearch5.0.0 安装插件及配置过程
elasticsearch5.0.0 安装插件及配置过程 由于es5.0是里程碑式的更新,所以很多变化的地方,暂时我就插件安装遇到的问题记录一下. 插件安装命令 2.3版本的安装命令 安装Marvel ...
- IIS和4.0安装到底有没有先后顺序解答
在很多人或许很多技术大神都会觉得IIS的安装和4.0没得先后顺序的.其错误弊端在与IIS没有注册到4.0上. 经过今天遇到了服务器安装服务端发觉报错[无法识别的属性“targetFramework”. ...
- Hadoop2.6.0安装 — 集群
文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6034187.html 这里写点 Hadoop2.6.0集群的安装和简单配置,一方面是为自 ...
- zabbix3.0安装部署文档
zabbix v3.0安装部署 摘要: 本文的安装过程摘自http://www.ttlsa.com/以及http://b.lifec-inc.com ,和站长凉白开的<ZABBIX从入门到精通v ...
- [转]phoneGap3.0安装步骤(以windows下的android环境为例):
phoneGap3.0安装步骤(以windows下的android环境为例): 环境: WIN系统,JDK,Android,Eclipse,Ant,Git,PhoneGap3.x (Cordova) ...
- Node Express 4.0 安装
前言 今天想要用nodejs 写个后台服务,很久之前看过node express 框架,可真当向下手安装的时候,发现好多命令都不记得了.写完后台服务,没事了,总结了下安装过程,记录一下,以便以后查阅方 ...
随机推荐
- QLViewController在iOS7下的自定义
原文来自:QLViewController在iOS7下的自定义 原先的项目使用了quicklook framework,用于在iPhone上浏览各类文件,除了txt文本会有乱码的问题,其他文件的显示都 ...
- Vue--- 一点车项目 6个小时实际看了10天(完结)
一个项目 环境安装 使用了 cli 脚手架 Koa2 workpackage 其他小的不计 前端Vue组件搭建 数据的简单测试交互 数据库的设计 创建.连接接数据库 前台[表单/分类] ...
- Linux中文件I/O函数
一.lseek函数 每个打开文件都有一个与其相关联的“当前文件偏移量”.它通常是一个非负整数,用以度量从文件开始处 计算的字节数.通常,读.写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数 ...
- Elasticsearch 5.x安装
node1 elasticsearch node2 elasticsearch node3 elasticsearch 前期准备 JDK1.8 修改/etc/security/limits.conf ...
- Java中枚举的相关应用
package example6; import org.junit.Test;/*1.什么是枚举? * 需要在颐堤港范围内取值,这个值只能是这个范围内的一个 * 使用枚举关键字enum * 枚举里也 ...
- .net第三方数据库物理卡号同步功能实现
本地数据库用的是Oracle,第三方数据库是SQL Server,连接字符串保存在web.config里面. 第三方数据库为增量,每次读取要记录读取的最大位置.我是保存在本地txt文件里面. //保存 ...
- tcp/ip五层协议
TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族.互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联 ...
- 传说是小米家的一道面试题难倒了某Java程序员。扑克牌排序问题。
网上说的是有位网友在面试小米Java岗三次后,终于挺进了第三轮面试,结果还是败在了两道算法题上面. 1.写个读方法和写方法,实现读写锁 2.一副从1到n的牌,每次从牌堆顶取一张放桌子上,再取一张放牌堆 ...
- 爬取 StackOverFlow 上有关于 Python 的问题
给定起始页面以及爬取页数,要求得到每一个问题的标题.票数.回答数.查看数 stackflow <- function(page){ url <- "http://stackove ...
- 两步搞定一台电脑同时开启多个tomcat
1. 修改tomcat中的某些参数,为了避免启动tomcat时出现冲突,编辑bin/startup.bat, 在文件第一行添加如下两行(必须第一行才有效) SET JAVA_HOME=C:\webso ...