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. INTRO: THE DAWN (亡灵序曲) 中独白

    As the last ship sailed towards the distant horizon I sat there watching on a rock My mind slowly dr ...

  2. python中filter(),map()和reduce()的用法及区别

    先看filter()方法 print(list(filter(lambda n : n % 2 == 1, range(20))))# 结果 [1, 3, 5, 7, 9, 11, 13, 15, 1 ...

  3. 9.4Django

    2018-9-4 17:19:13 昨天和基友玩到了十点 一路溜着玩喝豆腐脑,谈谈人生!感触颇深! 越努力,越幸运! 关于 Django的一开始的配置东西! 2018-9-4 19:42:27 201 ...

  4. 小程序中navigator和wx.navigateTo,wx.redirectTo,wx.reLaunch,wx.switchTab,wx.navigateBack的用法

    如果用一句话来表明navigator和API中wx.系列的跳转有什么区别,那就是navigator是在wxml中用标签添加open-type属性来达到和wx.系列一样的效果. navigator的属性 ...

  5. HTML/css之弹性布局

    1.flex 弹性布局 产生的比较晚 目前在移动网页开发中可以使用 而且逐渐成为主流. 在桌面网页开发中,使用的比较少 (主要是桌面浏览器的兼容性问题更加严重) 开启方法: 在容器标签上,加上disp ...

  6. UI自动化--PageObjects(页面对象)

    核心的核心:减少了重复代码的数量,减少变更涉及面:做到如果UI发生更改,则只需在一个位置应用此修复程序. PageObject:将页面作为一个对象,进行封装,包括元素定位,封装获取各元素.操作的方法: ...

  7. Saltstack之SaltSyndic

    SaltSyndic 1,SaltSyndic必须运行在salt-master上面 2,Syndic要连接另外一个Master比它更高级 在master安装syndic yum -y install ...

  8. 安装XP时BIOS的设置(ahci ide)

    和以前使用Windows XP一样,很多用户都在设法提高Windows 7的系统运行速速,比较常见的方法大多是对系统服务进行优化,去掉一些可有可无的系统服务,还有就是优化资源管理器菜单等.除此之外,还 ...

  9. create view in view

    CREATE VIEW view_region2role AS ( SELECT region_set_id, region_set_name, GROUP_CONCAT(id) gc_id, GRO ...

  10. django时间的时区问题

    在用django1.8版本做项目的时候遇到时间的存储与读取不一致的问题,网上找了很多帖子,但都没有讲明白.本文将在项目中遇到的问题及如何解决的尽可能详细的记录下来,当然本文参考了网上大量相关文章. 在 ...