Azkaban学习笔记(一)
1. 任务调度概述
- 一个完整的数据分析系统通常都是由大量任务单元组成:
shell脚本程序,java程序,mapreduce程序、hive脚本等 - 各任务单元之间存在时间先后及前后依赖关系
现成的开源调度系统,比如ooize、azkaban。
2. azkaban介绍
Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
它有如下功能特点:
- Web用户界面
- 方便上传工作流
- 方便设置任务之间的关系
- 调度工作流
- 认证/授权(权限的工作)
- 能够杀死并重新启动工作流
- 模块化和可插拔的插件机制
- 项目工作区
- 工作流和任务的日志记录和审计
3. azkaban安装部署
最好结合shell脚本来完成调度。
azkaban最好安装在master上,方便各种命令的执行。
Azkaban Web服务器:
azkaban-web-server-2.5.0.tar.gz
Azkaban执行服务器:
azkaban-executor-server-2.5.0.tar.gz
MySQL:
目前azkaban只支持 mysql,需安装mysql服务器,可以安装在某个节点之上(172.23.27.11),并建立了 root用户,密码 921015.
3.1 azkaban web服务器安装
1.解压
tar –zxvf azkaban-web-server-2.5.0.tar.gz
mv azkaban-web-server-2.5.0 server
2.创建SSL配置
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
运行此命令后,会提示输入当前生成 keystor的密码及相应信息,输入的密码请劳记,信息如下:
输入keystore密码:
再次输入新密码:
输入相同密码921015
完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 考贝到 azkaban web服务器根目录中.
cp keystore azkaban/server
3.配置文件
注:先配置好服务器节点上的时区
1、先生成时区配置文件Asia/Shanghai,用交互式命令 tzselect 即可
2、拷贝该时区文件,覆盖系统本地时区配置
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改conf/azkaban.properties
default.timezone.id=Asia/Shanghai #时区
database.type=mysql
mysql.port=3306
mysql.host=172.23.27.11
mysql.database=azkaban #数据库实例名
mysql.user=root
mysql.password=921015
# Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.keystore=keystore
jetty.password=921015
jetty.keypassword=921015
jetty.truststore=keystore
jetty.trustpassword=921015
其余不修改。
修改conf/azkaban-users.xml,添加web访问用户密码
<user username="admin" password="admin" roles="admin,metrics" />
3.2 azkaban 执行服务器executor配置
修改conf/azkaban.properties
default.timezone.id=Asia/Shanghai #时区
#数据库设置
database.type=mysql
mysql.port=3306
mysql.host=172.23.27.11
mysql.database=azkaban #数据库实例名
mysql.user=root
mysql.password=921015
3.3 azkaban脚本导入(MySQL配置)
tar –zxvf azkaban-sql-script-2.5.0.tar.gz
在安装了MySQL的节点
mysql> create database azkaban;
mysql> use azkaban;
mysql> source /opt/azkaban-2.5.0/create-all-sql-2.5.0.sql;
3.4 启动
bin/azkaban-web-start.sh
或者启动到后台:
nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out 2>/tmp/azerr.out &
bin/azkaban-executor-start.sh
用户名密码:admin
4. command job示例
多依赖job示例
1. 创建job描述
第一个job:foo.job
# foo.job
type=command
command=echo foo
第二个job:bar.job依赖foo.job
# bar.job
type=command
dependencies=foo
command=echo bar
2. 打包上传
将所有job资源文件打到一个zip包中。
在web页面中创建工程,并上传zip包。
可以设置调度时间和立即执行。
暂时先记录到这儿吧,以后再完善。
原文链接:https://blog.csdn.net/zouye4456/article/details/69913535
Azkaban学习笔记(一)的更多相关文章
- Azkaban学习笔记(二)
官方文档:http://azkaban.github.io/ 一.Azkaban主要的组成: 1. 关系型数据库——MySQL 2. AzkabanWebServer 3. AzkabanExcuto ...
- 【大数据】Azkaban学习笔记
一 概述 1.1 为什么需要工作流调度系统 1)一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 2)各任务单元之间存在时间 ...
- 01_Hadoop学习笔记内容说明
Hadoop学习笔记内容说明_00 1. 观看云帆大数据梦琪老师的<企业级 Hadoop 1.x 应用开发基础课程>2014年4月左右版本. 2. 博客是在梦琪老师的随堂笔记上改动的, ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
随机推荐
- 【CF878C】Tournament set+并查集+链表
[CF878C]Tournament 题意:有k个项目,n个运动员,第i个运动员的第j个项目的能力值为aij.一场比赛可以通过如下方式进行: 每次选出2个人和一个项目,该项目能力值高者获胜,败者被淘汰 ...
- [工具] 将Sublime Text 3配置为C++代码编辑器
{ "path": "C:\\Dev-Cpp\\bin", "cmd": ["g++.exe", "${fil ...
- java代码中实现android背景选择的selector-StateListDrawable的应用
首先定义一个获得StateListDrawable对象的方法: private StateListDrawable addStateDrawable(Context context, int idNo ...
- iOS - 国际化语言切换
iOS国际化:如何切换语言 1.国际化就是将标签.提示信息等信息放到资源文件中,随着程序需要的语言提供对应的资源文件.以key/value对存储,每个资源的key值不变,value随着需求改变. ...
- POJ-2184 Cow Exhibition(01背包变形)
Cow Exhibition Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10949 Accepted: 4344 Descr ...
- 如何使ul中li元素横向排列且不换行
外层div容器宽度固定,ul宽度随li(li宽度固定)的增加而撑开,但是当ul中li的宽度之和大于div时,ul没有撑开,而是li换行了,如何使li不换行? 解决方法:主要是外面容器设置为white- ...
- gevent 真正的协程
import gevent #第一次使用需要cmd窗口敲入 pip install Gevent from gevent import monkey:monkey.patch_all import t ...
- nginx map使用方法
map指令使用ngx_http_map_module模块提供的.默认情况下,nginx有加载这个模块,除非人为的 --without-http_map_module.ngx_http_map_modu ...
- [Error] 'for' loop initial declarations are only allowed in C99 or C11 mode
#include <stdio.h> #include <stdlib.h> #define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量 #defin ...
- initrd和initramfs的区别
Linux内核在初始化之后会执行init进程,而init进程会挂载我们的根文件系统,但由于init程序也是在根文件系统上的,所以这就有了悖论.Linux采用两步走的方法来解决这个问题.Linux2 ...