Hadoop离线数据分析平台实战——430MR和Hive任务Oozie部署

Hadoop离线数据分析平台实战——430MR和Hive任务Oozie部署

参考:oozie\package-info.java

项目进度

模块名称 完成情况
用户基本信息分析(MR)� 完成
浏览器信息分析(MR) 完成
地域信息分析(MR) 完成
外链信息分析(MR) 完成
用户浏览深度分析(Hive) 完成
订单分析(Hive) 完成
事件分析(Hive) 完成

MR程序Oozie workflow部署

MR程序有两种方式进行oozie部署,
第一种就是使用oozie的mapreduce action进行部署,
第二种就是使用普通的java action进行部署。
由于我们的mr程序读取的是hbase中的数据结构,
所以我们采用第二种部署方式来进行mr程序的部署操作。

注意:

在我们打包的时候,需要将TransformerBaseRunner类中的initJob方法中的TableMapReduceUtil.initTableMapperJob调用设置为集群运行(最后一个参数为true)。
以及AnalyserLogDataRunner类中run方法中的TableMapReduceUtil.initTableReducerJob设置为集群运行(最后一个参数为true)。

Hive&Sqoop脚本Oozie部署

针对Hive和sqoop脚本,oozie提供了专门的hive action和sqoop action,
但是我们这里采用将hive脚本和sqoop脚本写入到shell文件中,
通过shell命令给定参数,然后运行脚本的方式。
所以在这里我们采用oozie部署shell action来进行hive和sqoop的运行。

Oozie最终部署情况

我们定义一个定时的oozie的Coordinator,在其中包含所有的workflow,对应workflow的分支操作来进行组合。
需要注意的是:
oozie是通过异常信息来判断是否执行成功的,
所以我们需要注意mr成功执行失败的情况下,
我们需要进行异常的抛出。
作业:自己完善oozie部署

注意:

oozie的运行要求启动hdfs、yarn、historyserver这三个服务(必须),
针对具体的workflow还需要启动hbase、hivemetastore、mysql等服务。

MR和Hive的区别(优缺点)

  1. 运算资源消耗
    无论从时间,数据量,计算量上来看,一般情况下mr都是优于或者等于hive的。mr的灵活性是毋庸置疑的。在转换到hive的过程中,会有一些为了实现某些场景的需求而不得不用多步hive来实现的时候。
  2. 开发成本&维护成本
    相比于mr每次开发&维度都需要修改代码逻辑外,hive脚本可以比较容易的进行逻辑修改和代码管理(文本),但是在超大型或者大型的生成集群上,调试hive脚本相对于调试mr成功更加复杂和困难。

你可能感兴趣的:(Hadoop离线数据分析平台实战——430MR和Hive任务Oozie部署)