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 &

https://服务器IP地址:8443

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学习笔记(一)的更多相关文章

  1. Azkaban学习笔记(二)

    官方文档:http://azkaban.github.io/ 一.Azkaban主要的组成: 1. 关系型数据库——MySQL 2. AzkabanWebServer 3. AzkabanExcuto ...

  2. 【大数据】Azkaban学习笔记

    一 概述 1.1 为什么需要工作流调度系统 1)一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 2)各任务单元之间存在时间 ...

  3. 01_Hadoop学习笔记内容说明

    Hadoop学习笔记内容说明_00 1.  观看云帆大数据梦琪老师的<企业级 Hadoop 1.x 应用开发基础课程>2014年4月左右版本. 2.  博客是在梦琪老师的随堂笔记上改动的, ...

  4. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  5. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  6. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  7. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  8. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  9. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

随机推荐

  1. iOS - 开源框架、项目和学习资料汇总(动画篇)

    动画 1. Core Animation笔记,基本的使用方法 – Core Animation笔记,基本的使用方法:1.基本动画,2.多步动画,3.沿路径的动画,4.时间函数,5.动画组.2. awe ...

  2. 应用程序添加角标和tabBar添加角标,以及后台运行时显示

    1.设置角标的代码:   // 从后台取出来的数据可能是int型的不能直接给badgeValue(string类型的),需要通过description转化  NSString *count = [re ...

  3. wpgcms---列表页数据渲染

    列表页的数据,都是放到 contentList 这样的一个变量里面. {% for x in contentList %} <dl> <dt><a href=" ...

  4. jqGrid 中的editrules来自定义colModel验证规则

    editrules    editrules是用来设置一些可用于可编辑列的colModel的额外属性的.大多数的时候是用来在提交到服务器之前验证用户的输入合法性的.比如editrules:{edith ...

  5. ubuntu16.04下安装ros-kinetic

    参考:http://wiki.ros.org/kinetic/Installation/Ubuntu 1.添加ROS软件源 ~$ sudo sh -c 'echo "deb http://p ...

  6. 线程池和进程池的通用写法 ProcessPoolExecutor 和 ThreadPoolExecutor

    import time from comcurrent.futures import ThreadPoolExecutor,ProcessPoolExccoutor#这个方法可以用进程池或者线程池 d ...

  7. POJ 1984 - Navigation Nightmare - [带权并查集]

    题目链接:http://poj.org/problem?id=1984 Time Limit: 2000MS Memory Limit: 30000K Case Time Limit: 1000MS ...

  8. PHP之curl扩展

    curl抓取远程文件 curl_init(); curl_setopt(); curl_exec(); curl_close(); 参数: //是curl收到HTTP response中的set-co ...

  9. .windows安装使用这些偏底层的Python扩展太

    .windows安装使用这些偏底层的Python扩展太不爽了,怎么彻底解决 error: Unable to find vcvarsall.bat呢? 1.不要按网上说的,安装MinGW,然后在“.. ...

  10. Jungle Roads---poj1251 hdu1301

    Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid ...