1 Azkaban任务调度管理

1.1 执行任务的脚本编写和说明

在做任务调度的过程中,要编写相应的脚本。

-rwxrwxrwx 1 root root      809 6月  12 19:52 auto-exec-1-mr.sh
-rwxrwxrwx 1 root root      975 6月  12 19:53 auto-exec-2-load-logger-data.sh
-rwxrwxrwx 1 root root     1459 6月  12 19:53 auto-exec-3-kylin-build.sh
-rwxrwxrwx 1 root root      446 6月  16 14:34 auto-exec-4-analyze.sh
-rwxrwxrwx 1 root root      110 6月  12 19:54 auto-exec-5-sqoop-mysql.sh
-rwxrwxrwx 1 root root      313 6月  16 14:55 auto-exec-6-pv-uv.sh

然后让这些脚本具有可执行权限:

[root@bigdata1 logger-handler]# pwd
/home/bigdata/workspace/logger-handler
[root@bigdata1 logger-handler]# chmod +x *.sh

1.1.1 auto-exec-1-mr.sh

该脚本主要用于执行数据清洗应用
#!/bin/bash
sync
echo 3 > /proc/sys/vm/drop_cachesecho "步骤1:执行logger的mr数据清洗程序"yesterday=`date --date='1 days ago' +%y-%m-%d`
#删除mapreduce清洗文件夹(存储上一天的那个文件夹)#yesterdayFolder=/output/nginx/$yesterday#判断上一天的这个文件夹是否存在
hdfs dfs -test -e /output/nginx/$yesterdayif [ $? -eq 0 ]
thenecho "存在上一天这个文件夹"hdfs dfs -rm -r /output/nginx/$yesterday
else#字符串中带有变量时,这里的引号必须是双引号echo "不存在$yesterday这个文件夹"
fiecho "开始进行日志文件的mapreduce的清洗程序"
cd /home/bigdata/workspace/logger-handler
hadoop jar bigdata-logger-mr-1.0.0-SNAPSHOT-jar-with-dependencies.jar com.youx.bigdata.logger.driver.loggerRunner

1.1.2 auto-exec-2-load-logger-data.sh

该脚本主要用于执行将清洗的数据load到hive库中的操作。
#!/bin/bash
sync
echo 3 > /proc/sys/vm/drop_cachesecho "步骤2:执行hive命令load数据到hive中"#如果时间定义成+%Y-%m-%d 则时间变成了2018-05-24了
yesterday=`date --date='1 days ago' +%y-%m-%d`
echo $yesterday#定义变量
str1="part-r-"#获取到hdfs中中文件列表,awk '{print $8}'获取到第八列
for hdfsFile in `hdfs dfs -ls /output/nginx/$yesterday | awk '{print $8}'`
doecho $hdfsFileresult=$(echo $hdfsFile | grep "${str1}")if [[ "$result" != "" ]]then#表示包含这个part-r-这类前缀的文件的,然后开始做数据导入操作。#使用hive -e的方式执行hive命令#要注意的是,当执行过一遍之loaddata后,原来放置mapreduce处理结果位置的这个数据就没了。hive -e "use nginx_log;load data inpath 'hdfs://bigdata1:9000$hdfsFile' into table nginx_log_info;"else#表示不包含这个文件的continuefi
done#hive -e "
#use nginx_log;"

1.1.3 auto-exec-3-kylin-build.sh

该脚本主要用于让kylin自动预编译。

#!/bin/bash
sync
echo 3 > /proc/sys/vm/drop_cachesecho "步骤3:kylin-build"
#################################################################################
#脚本功能:在数据被load到hive之后,使用kylin进行Build,增量更新kylin cube
##################################################################################cubeName     cube名称
#endTime  执行build cube的结束时间(命令传给Kylin的kylinEndTime = readEndTime + (8小时,转化为毫秒))。
#         只需要给kylin传入build cube的结束时间即可。
#buildType   BUILD构建cube操作(还有Refresh、Merge等操作,增量构建为BUILD)#endTime=`date "+%Y-%m-%d 00:00:00"`
endTime=`date +%Y-%m-%d -d "+1days"`
echo "$endTime"
endTimeTimeStamp=`date -d "$endTime" +%s`
echo $endTimeTimeStamp#将时间戳编程毫秒值
endTimeTimeStampMs=$(($endTimeTimeStamp * 1000))
echo $endTimeTimeStampMscubeName=logger_cube#curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "startTime"}'
curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "endTime":'$endTimeTimeStampMs', "buildType": "BUILD"}' http://bigdata1:7070/kylin/api/cubes/logger_cat/rebuild
#curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '{ "startTime": 820454400000, "endTime": 821318400000, "buildType": "BUILD"}' http://localhost:7070/kylin/api/cubes/kylin_sales/build

1.1.4 auto-exec-4-analyze.sh

该脚本主要用于执行分析url访问次数,url平均访问时间

#!/bin/bash
sync
echo 3 > /proc/sys/vm/drop_caches#echo "步骤4:执行分析程序"#echo "休眠10秒"
#sleep 10s#echo "休眠1分钟"
#sleep 1m#echo "休眠1小时"
#sleep 1hecho "休眠2个小时,开始"
sleep 120m
echo "休眠2个小时,结束"cd /home/bigdata/workspace/logger-handler
#执行分析程序
hadoop jar bigdata-logger-kylin-1.0.0-SNAPSHOT-jar-with-dependencies.jar com.youx.bigdata.logger.kylin.LoggerKylinAnalyze

1.1.5 auto-exec-5-sqoop-mysql.sh

该脚本暂时未做功能

1.1.6 auto-exec-6-pv-uv.sh

该脚本主要用于调用执行分析程序pv,uv的程序。
#!bin/bash

sync
echo 3 > /proc/sys/vm/drop_cachesecho "休眠140分钟,开始"
sleep 140m
echo "休眠140分钟,结束"#执行分析程序
cd /home/bigdata/workspace/logger-handler
hadoop jar bigdata-operation-info-1.0.0-SNAPSHOT-jar-with-dependencies.jar com.youx.bigdata.logger.analyze.OperationInfoAnalyze

1.2 Job任务编写

Azkaban的任务脚本是以.job结尾的文件。

1.2.1 auto-exec-1-mr.job

具体内容是:

#auto-exec-1-mr.job
type=command
command=sh /home/bigdata/workspace/logger-handler/auto-exec-1-mr.sh

说明:
通过上面的写法,通过命令的方式执行job,其中命令是:

command=sh /home/bigdata/workspace/logger-handler/auto-exec-1-mr.sh

1.2.2 auto-exec-2-load-logger-data.job

下面的job主要的作用是将数据清洗的结果load到hive仓库中。
#auto-exec-2-load-logger-data.job
type=command
dependencies=auto-exec-1-mr
command=sh /home/bigdata/workspace/logger-handler/auto-exec-2-load-logger-data.sh
上面增加了一个关键字:dependencies,表示这个任务依赖任务auto-exec-1-mr,只有当auto-exec-1-mr任务执行完毕之后才会进行后续操作。

1.2.3 auto-exec-3-kylin-build.job

 执行kylin的build任务。
#auto-exec-3-kylin-build.job
type=command
dependencies=auto-exec-2-load-logger-data
command=sh /home/bigdata/workspace/logger-handler/auto-exec-3-kylin-build.sh

1.2.4 auto-exec-4-analyze.job

执行url访问统计和访问量统计的任务

#auto-exec-4-analyze.job
type=command
dependencies=auto-exec-3-kylin-build
command=sh /home/bigdata/workspace/logger-handler/auto-exec-4-analyze.sh

1.2.5 auto-exec-5-sqoop-mysql.job

执行将hive中数据导入到mysql中的操作。

1.2.6 auto-exec-6-pv-uv.job

执行pv,uv分析任务
#auto-exec-6-pv-uv.job
type=command
dependencies=auto-exec-5-sqoop-mysql
command=sh /home/bigdata/workspace/logger-handler/auto-exec-6-pv-uv.sh

1.2.7 统一压缩job到zip包

Azkaban的执行需要一个压缩包,所以需要将上面编写的job统一压缩到一个zip中。效果图下:

1.3 项目创建/上传任务包/配置任务调度

当job都编写完成之后,开始创建azkaban的任务调度的项目,并上传任务执行包。
创建项目。
访问:https://bigdata1:8443/index,输入用户名/密码: admin / admin之后进入azkaban界面。

创建项目:
点击上面的”Create Project”

点击”Create Project”,进入一下界面:

点击“upload”

点击”选择文件”


点击Upload按钮,进入以下界面:

点击”Execute Flow”,进入以下界面:

点击Schedule,进入以下界面:


点击schddule,任务配置完成

最终进入以下界面:

Azkaban任务调度(使用带有依赖的任务调度)【mapreduce数据清洗,数据入hive库,kylin预编译、数据分析】相关推荐

  1. hdfs、MapReduce、yarn、hive、sqoop、HBASE、Redis、kafka、ES

    目录 大数据开发复习课程 1.Hadoop 1.1.介绍Hadoop 1.2.Hadoop特性优点 1.3.hadoop集群中hadoop都需要启动哪些进程,他们的作用分别是什么? 1.4.Hadoo ...

  2. 解决:single failed: For artifact {null:null:null:jar}: The groupId cannot be empty. 把工程依赖的jar包打到入jar中

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 执行 mvn clean install 报错: Execution make-assembl ...

  3. 从零开始大数据--Hadoop、HDFS、MapReduce、HBase、Hive

    文章目录 概述 Hadoop HDFS HBase 实现原理 Regin服务器原理 HBase安装与使用 NoSQL数据库 MapReduce Hive 概述 IT领域每隔十五年就会迎来一次重大变革: ...

  4. MapReduce的数据去重功能

    实验材料及说明 现有某电商网站用户对商品的收藏数据,记录了用户收藏的商品id以及收藏日期,文件名为buyer_favorite.buyer_favorite包含:买家id,商品id,收藏日期这三个字段 ...

  5. Java抽象类中,普通方法依赖抽象方法时,抽象方法有入参的实现方法

    学些Java的抽象类和抽象方法,书中介绍一个例子: [问题描述]编写一个抽象父类SpeedMeter速度表,提供普通方法getSpeed()计算速度,给子类使用,但留给子类实现抽象方法getRadiu ...

  6. java任务系统设计_任务调度系统-任务依赖的设计

    1.任务依赖需求描述: 例子: 一个作业分为如下子任务: 任务1,任务2,任务3,任务4 执行的顺序为,任务1--->任务2,任务3--->任务4 其中任务2,任务3可以并行执行,我们用下 ...

  7. python分布式任务调度开源_分布式工作流任务调度系统Easy Scheduler正式开源

    分布式工作流任务调度系统Easy Scheduler正式开源 背景 在多位技术小伙伴的努力下,经过近2年的研发迭代.内部业务剥离及重构,也经历一批种子用户试用一段时间后,EasyScheduler终于 ...

  8. python任务调度平台 界面_分布式任务调度平台XXL-JOB

    以前带我的人说过,最好的学习就是看官方文档,个人也有4个T的学习视频,但是会发现讲的都是入门,有的也比较浅. 官方文档比较官方,也比较权威,打开xxl-job的官网,写的贼详细,有些人喜欢收博客,不喜 ...

  9. python任务调度平台 界面_分布式任务调度平台XXL-JOB搭建教程

    关于分布式任务调度平台XXL-JOB,其实作者 许雪里在其发布的中文教程中已经介绍的很清楚了,这里我就不做过多的介绍了,关于其搭建教程,本人依照其文档搭建起来基本上也没遇到啥问题,这里通过博客的形式记 ...

最新文章

  1. 独家 | 带你入门比Python更高效的Numpy(附代码)
  2. 001_html简介
  3. 如何在Kubernetes里给PostgreSQL创建secret
  4. Storm 疑难杂症。
  5. Android之error: void value not ignored as it ought to be(In function ‘callMethod2‘)解决办法
  6. ​嵌入式开发为什么选择C语言?
  7. 设计模式C++实现(7)——装饰模式
  8. Javascript + Servlet的鸿沟如何抹平以构建富客户端应用?[SOS]
  9. 曼联刷新132年队史纪录
  10. Kubernetes 小白学习笔记(22)--kubernetes的运维-管理Namespace
  11. Java常用的设计模式
  12. 离散数学第7章欧拉图,哈密顿图
  13. IDEA 使用mybatis插件Free Mybatis plugin
  14. 终极文件/文件夹隐藏方案大全
  15. 述职答辩提问环节一般可以问些什么_2.50 述职报告与评审提问注意事项
  16. 拼多多卖家必知:店铺评分和评价那点事
  17. Impala metrics之statestore-subscriber
  18. 三点估算法 PERT计划评审技术
  19. Iass、Pass、Sass三种云服务有什么区别
  20. 全球政策 | 区块链:达沃斯年会上不可忽视的声音

热门文章

  1. pythonclass全局变量_python怎么使用全局变量
  2. 《高性能JavaScript》第五章 字符串和正则表达式
  3. python +keras实现图像分类(入门级例子讲解)
  4. VTK:多块数据集用法实战
  5. VTK:多重渲染窗口用法实战
  6. OpenCASCADE绘制测试线束:图形命令之AIS 查看器——对象命令
  7. OpenCASCADE:简介
  8. wxWidgets:wxScopedCharTypeBuffer< T >类模板用法
  9. boost::gil模块数字扩展中的 resample_pixels() 示例
  10. Boost:文字差异的测试程序