Azkaban 4.0.0 系列(一)-- Solo-Server
下载
链接
https://github.com/azkaban/azkaban/releases/4.0.0.tar.gz
解压
tar -xzvf 4.0.0.tar.gz -C 自定义目标目录
修改azkaban-4.0.0目录下的build.gradle文件
找到初始配置信息
maven{
url 'https://linkedin.bintray.com/maven'
}
进行修改
maven {
url 'https://linkedin.jfrog.io/artifactory/open-source/'
}
原有的仓库地址在国内访问会非常缓慢,甚至不能访问,造成编译过程报错。
修改 nodejs 相关配置
进入到/..../azkaban-4.0.0/azkaban-web-server目录中,打开build.gradle文件,将node选项中的download配置值设为false
node {
// Version of node to use.
version = '8.10.0'
// Version of npm to use.
npmVersion = '5.6.0'
// Base URL for fetching node distributions (change if you have a mirror).
distBaseUrl = 'https://nodejs.org/dist'
// If true, it will download node using above parameters.
// If false, it will try to use globally installed node.
download = false
// Set the work directory for unpacking node
workDir = file("${project.buildDir}/nodejs")
// Set the work directory where node_modules should be located
nodeModulesDir = file("${project.projectDir}")
}
如果不修改的话,azkaban在编译的过程中就会去下载 node-8.10.0,大概率会因为网络问题使下载失败,从而导致编译失败。
我们本机需要准备好node环境(笔者在编译的时候遇到过,node环境已经存在,但是提示 npm not found 的报错信息,尝试多次后无果,最后将虚拟机重启解决。)
修改azkaban-db代码,以支持Mysql8.X系列数据库
进入/..../azkaban-4.0.0/azkaban-db/src/main/java/azkaban/db目录,修改MySQLDataSource.java
@Inject
public MySQLDataSource(final Props props, final DBMetrics dbMetrics) {
super();
this.dbMetrics = dbMetrics;
final int port = props.getInt("mysql.port");
final String host = props.getString("mysql.host");
final String dbName = props.getString("mysql.database");
final String user = props.getString("mysql.user");
final String password = props.getString("mysql.password");
final int numConnections = props.getInt("mysql.numconnections");
//加上mysql的驱动类配置项,如果没有配置则默认是mysql5.x
//-----------------begin-----------------------
String driverName = props.getString("mysql.driverName");
if(driverName == null){
driverName = "com.mysql.jdbc.Driver";
}
//-----------------end-----------------------
final String url = "jdbc:mysql://" + (host + ":" + port + "/" + dbName);
addConnectionProperty("useUnicode", "yes");
addConnectionProperty("characterEncoding", "UTF-8");
//setDriverClassName(com.mysql.jdbc.Driver);
//修改成从配置中读取驱动类名
addConnectionProperty("useSSL", "false");
setDriverClassName(driverName);
setUsername(user);
setPassword(password);
setUrl(url);
setMaxTotal(numConnections);
setValidationQuery("/* ping */ select 1");
setTestOnBorrow(true);
}
azkaban 默认支持MySQL5.x版本,可以根据需要,决定是否让其适配5.x及8.x
编译
提前准备好 gradle-4.6-all.zip
下载链接:https://services.gradle.org/distributions/gradle-4.6-all.zip
整合到Azkaban中,目标目录如下:
/..../azkaban-4.0.0/gradle/wrapper/
修改配置文件 gradle-wrapper.properties :
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
# distributionUrl=https://services.gradle.org/distributions/gradle-4.6-all.zip #(注释掉这一行)
distributionUrl=gradle-4.6-all.zip # (添加该行内容)
指令
cd /..../azkaban-4.0.0/
./gradlew build installDist
可能会出现 test failed 的提示,使用如下参数跳过测试。
./gradlew build installDist -x test
不出意外,编译会顺利进行。
启动 Solo-Server
指令
cd /..../azkaban-4.0.0/azkaban-solo-server/build/install/azkaban-solo-server
sh ./bin/start-solo.sh
服务检查指令:jps
返回:AzkabanSingleServer
浏览器访问:
http://本机ip:8081/
用户名/密码:azkaban/azkaban
案例
文件准备
mkdir first_azkaban_project && cd first_azkaban_project
vi basic.flow (添加文件内容)
nodes:
- name: jobA
type: command
config:
command: echo "This is an echoed text."
vi flow20.project (添加文件内容)
azkaban-flow-version: 2.0
打包:
zip -r Archive.zip . (在 first_azkaban_project 下)
如果没有 zip 指令,使用 yum install zip -y 进行安装
将生成的zip包拉取到本地,上传到提前创建好的项目中,运行即可。
Azkaban 4.0.0 系列(一)-- Solo-Server的更多相关文章
- Netty4.0学习笔记系列之一:Server与Client的通讯
http://blog.csdn.net/u013252773/article/details/21046697 本文是学习Netty的第一篇文章,主要对Netty的Server和Client间的通讯 ...
- Azkaban 2.5.0 搭建
一.前言 最近试着参照官方文档搭建 Azkaban,发现文档很多地方有坑,所以在此记录一下. 二.环境及软件 安装环境: 系统环境: ubuntu-12.04.2-server-amd64 安装目录: ...
- 【多端应用开发系列0.0.0——之总序】xy多端应用开发方案定制
[目录] 0.0.0 [多端应用开发系列之总序]服务器Json数据处理——Json数据概述 0.0.0 [因] 正在学习多客户端应用开发,挖个坑,把所用到的技术方案,用最简单直白的语言描述出来,写成一 ...
- 【转】WF4.0实战系列索引
转自:http://www.cnblogs.com/zhuqil/archive/2010/07/05/wf4-in-action-index.html 此系列的工作流文件案例比较多点,实用性好. W ...
- Azkaban 2.5.0 搭建和一些小问题
安装环境: 系统环境: ubuntu-12.04.2-server-amd64 安装目录: /usr/local/ae/ankaban JDK 安装目录: export JAVA_HOME=/usr/ ...
- 【Azkaban搭建】---Azkaban 3.25.0搭建细则 超实用
一.前述 Azkaban是一个工作流调度工具,因为需要各个任务之间有依赖关系,传统的Crontab 任务已经不能满足. 所以需要建立一套工作流引擎.相比Ooize来说,Azkaban的优势是作为一个客 ...
- Spark2.0机器学习系列之11: 聚类(幂迭代聚类, power iteration clustering, PIC)
在Spark2.0版本中(不是基于RDD API的MLlib),共有四种聚类方法: (1)K-means (2)Latent Dirichlet all ...
- Spark2.0机器学习系列之1: 聚类算法(LDA)
在Spark2.0版本中(不是基于RDD API的MLlib),共有四种聚类方法: (1)K-means (2)Latent Dirichlet allocation (LDA) ...
- Azkaban学习之路(四)—— Azkaban Flow 2.0的使用
一.Flow 2.0 简介 1.1 Flow 2.0 的产生 Azkaban 目前同时支持 Flow 1.0 和 Flow2.0 ,但是官方文档上更推荐使用Flow 2.0,因为Flow 1.0会在将 ...
- Entity Framework 6.0 入门系列 第一篇
Entity Framework 6.0 入门系列 第一篇 好几年前接触过一些ef感觉不是很好用,废弃.但是 Entity Framework 6.0是经过几个版本优化过的产物,性能和功能不断完善,开 ...
随机推荐
- nvm安装和管理nodejs
一.NVM简介 NVM 全称 Node Version Manager,是一个管理 NodeJS 版本的工具. NVM 默认只支持 Linux 和 OS X,不支持 Windows windows使用 ...
- uniapp 提示 打包时未添加 push模块
最近打包上架的 ios项目 启动项目提示打包时未添加 push模块 在uniapp manifest中可以配置消息推送,可以我们项目没有用到这个功能,真是日狗了,排除半天仔细检查了使用Push ...
- Vue 超长列表渲染性能优化
参考:https://juejin.cn/post/6979865534166728711#heading-3 组件懒加载参考:https://github.com/xunleif2e/vue-laz ...
- java学习日记20230227-java学习方法/转义字符/注释
Java学习方法 学习java基本原理和基本语法 快速入门(基本程序 CRUD) 研究技术的注意事项,使用细节,使用规范,如何优化 JAVA转义字符 \t : 一个制表位,实现对齐的功能 \n:换行符 ...
- 「JOI Open 2022」Giraffes 题解
设我们将要给出的观感好的排列为 \(q\),我们希望求出 \(\sum[p_i=q_i]\) 的最大值(这里指不移动的长颈鹿个数). 结论一:当且仅当左右端点有当前区间最大值或者最小值时条件才能成立. ...
- postman连接mysql数据库
转载:https://www.cnblogs.com/pengxiaojie/p/13495237.html 1.安装 2.启动服务 3.执行sql语句 安装: 想要postman连接mysql,需要 ...
- Servlet简介和ServletContext
0x01: 什么是Servlet? 是sun公司开发动态web的技术 实现了servlet接口的Java程序 0x02: Servlet的实现类有哪些? Servlet接口默认有两个实现类 HttpS ...
- CF单机版终极猎手30人版安装教程
本游戏是CF的单机版本,内含终极猎手30人版,可变身四种终极猎手.这个版本只有这一种模式,没有其他的幽灵模式.生化模式.爆破模式.团队模式等等,如果想玩上述的模式,你可以在其他地方找.值得注意的是这个 ...
- React.js 修改文本中数字样式
export function numberToColor(text, color = '#635BFF', size = '12px') { let reg = /(\d+)/g; return t ...
- 网络爬虫Python(一)
1.爬取页面,打印页面信息 1 import requests 2 3 # get请求 4 response_get=requests.get("https://www.baidu.com& ...