Azkaban学习之路(二)—— Azkaban 3.x 编译及部署
一、Azkaban 源码编译
1.1 下载并解压
Azkaban 在3.0版本之后就不提供对应的安装包,需要自己下载源码进行编译。
下载所需版本的源码,Azkaban的源码托管在GitHub上,地址为https://github.com/azkaban/azkaban 。可以使用git clone
的方式获取源码,也可以使用wget
直接下载对应release版本的tar.gz
文件,这里我采用第二种方式:
# 下载
wget https://github.com/azkaban/azkaban/archive/3.70.0.tar.gz
# 解压
tar -zxvf azkaban-3.70.0.tar.gz
1.2 准备编译环境
1. JDK
Azkaban 编译依赖JDK 1.8+ ,JDK安装方式见本仓库:
2. Gradle
Azkaban 3.70.0编译需要依赖gradle-4.6-all.zip
。Gradle是一个项目自动化构建开源工具,类似于Maven,但由于采用Groovy语言进行项目配置,所以比Maven更为灵活,目前广泛用于Android开发、Spring项目的构建。
需要注意的是不同版本的Azkaban依赖Gradle版本不同,可以在解压后的/gradle/wrapper/gradle-wrapper.properties
文件查看
在编译时程序会自动去图中所示的地址进行下载,但是下载速度很慢。为避免影响编译过程,建议先手动下载至/gradle/wrapper/
目录下:
# wget https://services.gradle.org/distributions/gradle-4.6-all.zip
然后修改配置文件gradle-wrapper.properties
中的distributionUrl
属性,指明使用本地的gradle。
3. Git
Azkaban 的编译过程需要用Git下载部分JAR包,所以需要预先安装Git:
# yum install git
1.3 项目编译
在根目录下执行编译命令,编译成功后会有BUILD SUCCESSFUL
的提示:
# ./gradlew build installDist -x test
编译过程中需要注意以下问题:
- 因为编译的过程需要下载大量的Jar包,下载速度根据网络情况而定,通常都不会很快,如果网络不好,耗费半个小时,一个小时都是很正常的;
- 编译过程中如果出现网络问题而导致JAR无法下载,编译可能会被强行终止,这时候重复执行编译命令即可,gradle会把已经下载的JAR缓存到本地,所以不用担心会重复下载JAR包。
二、Azkaban 部署模式
After version 3.0, we provide two modes: the stand alone “solo-server” mode and distributed multiple-executor mode. The following describes thedifferences between the two modes.
按照官方文档的说明,Azkaban 3.x 之后版本提供2种运行模式:
solo server model(单服务模式) :元数据默认存放在内置的H2数据库(可以修改为MySQL),该模式中
webServer
(管理服务器)和executorServer
(执行服务器)运行在同一个进程中,进程名是AzkabanSingleServer
。该模式适用于小规模工作流的调度。multiple-executor(分布式多服务模式) :存放元数据的数据库为MySQL,MySQL应采用主从模式进行备份和容错。这种模式下
webServer
和executorServer
在不同进程中运行,彼此之间互不影响,适合用于生产环境。
下面主要介绍Solo Server
模式。
三 、Solo Server 模式部署
2.1 解压
Solo Server 模式安装包在编译后的/azkaban-solo-server/build/distributions
目录下,找到后进行解压即可:
# 解压
tar -zxvf azkaban-solo-server-3.70.0.tar.gz
2.2 修改时区
这一步不是必须的。但是因为Azkaban默认采用的时区是America/Los_Angeles
,如果你的调度任务中有定时任务的话,就需要进行相应的更改,这里我更改为常用的Asia/Shanghai
2.3 启动
执行启动命令,需要注意的是一定要在根目录下执行,不能进入bin
目录下执行,不然会抛出Cannot find 'database.properties'
异常。
# bin/start-solo.sh
2.4 验证
验证方式一:使用jps
命令查看是否有AzkabanSingleServer
进程:
验证方式二:访问8081端口,查看Web UI界面,默认的登录名密码都是azkaban
,如果需要修改或新增用户,可以在conf/azkaban-users.xml
文件中进行配置:
更多大数据系列文章可以参见个人 GitHub 开源项目: 程序员大数据入门指南
Azkaban学习之路(二)—— Azkaban 3.x 编译及部署的更多相关文章
- Azkaban学习之路 (二)Azkaban的安装
安装过程 1.软件介绍 Azkaban Web 服务器:azkaban-web-server-2.5.0.tar.gz Azkaban Excutor 执行服务器:azkaban-executor-s ...
- Azkaban学习笔记(二)
官方文档:http://azkaban.github.io/ 一.Azkaban主要的组成: 1. 关系型数据库——MySQL 2. AzkabanWebServer 3. AzkabanExcuto ...
- Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
- Azkaban学习之路 (一)Azkaban的基础介绍
一.为什么需要工作流调度器 1.一个完整的数据分析系统通常都是由大量任务单元组成: shell 脚本程序,java 程序,mapreduce 程序.hive 脚本等 2.各任务单元之间存在时间先后及前 ...
- 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会在将 ...
- Azkaban学习之路(三)—— Azkaban Flow 1.0 的使用
一.简介 Azkaban主要通过界面上传配置文件来进行任务的调度.它有两个重要的概念: Job: 你需要执行的调度任务: Flow:一个获取多个Job及它们之间的依赖关系所组成的图表叫做Flow. 目 ...
- Azkaban学习之路(一)—— Azkaban 简介
一.Azkaban 介绍 1.1 背景 一个完整的大数据分析系统,必然由很多任务单元(如数据收集.数据清洗.数据存储.数据分析等)组成,所有的任务单元及其之间的依赖关系组成了复杂的工作流.复杂的工作流 ...
- Azkaban学习之路 (三)Azkaban的使用
界面介绍 首页有四个菜单 projects:最重要的部分,创建一个工程,所有flows将在工程中运行. scheduling:显示定时任务 executing:显示当前运行的任务 history:显示 ...
- zigbee学习之路(二)点亮LED
一.前言 今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了. 二.原理分析 cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2 ...
随机推荐
- echarts学习(上)
echarts 学习之路 学习思路 初识echarts 编写自己的echarts图表 根据需求编写工作中的echarts图表[进阶篇] github地址:https://github.com/liso ...
- ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF 框架服务 上一章节中我们了解了 Entity ...
- OpenGL(六) gluLookAt和gluPerspective函数解析
在调用gluLookAt和gluPerspective函数之前一般要先调用一下glLoadIdentity函数,先说一下这个函数是做什么的. glLoadIdentity glLoadIdentity ...
- Paxos—以选美比赛为例PPT
- Headless Chrome入门
原文地址:Getting Started with Headless Chrome By EricBidelman Engineer @ Google working on web tooling ...
- java的System.getProperty()值的方法可以得到
java.version Java 执行时环境版本号 java.vendor Java 执行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装 ...
- JAVASCRIPT高程笔记-------第八章 浏览器BOM对象
8.1 window对象--表示一个浏览器的实例 在全局作用域中声明的任何变量.函数都会变成window对象的属性和方法,与之直接定义window对象的属性的区别是 window.xxx 可以通过 ...
- WPF RichTextBox 禁止换行
原文:WPF RichTextBox 禁止换行 这个问题困扰了好久,进过不断的努力,终于解决了 <RichTextBox Margin="0,44,10,0&quo ...
- thinkphp前台html格式化输出日期
输出格式: {$time|strtotime|date="Y年m月d日",###} 格式说明: $time 是日期字符串,一般后台的时间是"Y-m-d H:i:s&quo ...
- HTTP协议入门(一)- 版本
当我们在浏览器的地址栏输入URL后,信息会被发送到WEB服务器,服务器得到响应,将数据传输回来,展示到WEB页面上,这其中的传输方法就是HTTP协议. 一.HTTP 0.9 发布于1991年,是首个H ...