天天看点

高可用Hadoop平台-Oozie工作流1.概述2.内容介绍3.Oozie Server4.截图预览5.总结6.结束语

  在开发hadoop的相关应用使用,在业务不复杂,任务不多的情况下,我们可以直接使用crontab去完成相关应用的调度。今天给大家介绍的是统一管理各种调度任务的系统,下面为今天分享的内容目录:

内容介绍

oozie server

截图预览

  下面开始今天的内容分享。

  今天的内容不涉及oozie的具体细节操作,它的工作流程在下一篇博客为大家详细介绍。今天主要给大家分享oozie的作用,它的集成步骤等内容。

  oozie它是一个开源的工作流调度系统,它可以管理逻辑复杂的多个hadoop作业任务,按照指定的顺序将其进行协同工作。比如说,我们日常的工作场景:

收集数据到hdfs

编写mr去清洗数据,生成新的数据存放到指定的hdfs路径下

创建hive表分区,并加载数据到对应的表分区

使用hql进行业务指标统计,并将统计的结果输出到对应的hive大表当中

对统计后的大表当中的数据进行数据导出共外界业务去调用使用

  通过上述的日常工作流程,我们可以编写工作流系统,生成一个工作流实例,然后每天定时去运行实例即可。针对这样一种hadoop的应用场景,oozie能够简化我们的任务调度并执行。

  本次给大家分享的基础环境是:

name  

value

操作系统

centos6.6

工作流

oozie4.2

hadoop

2.6

  

  以上便是本篇博客需依赖的基础环境。另外还需要用到jdk,maven,mysql驱动文件等。

  oozie server能够为我们提供便捷的job管理功能,可以通过其可视化界面去管理job的运行状态,当然也支持构建复杂的hadoop job流程,各个job之间的依赖关系可以通过工作流进行配置,由oozie server统一去执行。

maven

  下载安装maven环境,命令如下所示:

  接着添加环境变量,如下所示:

  然后输入一下命令使之立即生效:

  最后,我们输入 mvn -version 命令,若能现实对应的maven版本号,即表示maven环境集成ok。

mysql

  关于 mysql 数据库的安装配置较为简单,这里就不多做赘述了。

tomcat

  由于oozie会用其web容器,这里需要安装tomcat web服务器,可以到apache的官网下载对应的安装包,这里不多做赘述。

extjs工具包

  在可视化会依赖该工具包,所以这里我们需要下载其工具,下载地址我们可以在oozie的dg_quickstart页面找到,如下图所示:

高可用Hadoop平台-Oozie工作流1.概述2.内容介绍3.Oozie Server4.截图预览5.总结6.结束语

  地址如下所示:

oozie

  这里我们可以在oozie的官网下载其安装包,下载地址:

  在准备好环境后,接下来,我们去集成oozie。首先,我们将下载的oozie安装包进行解压,然后,使用maven命令对其进行打包。操作命令如下所示:

  注意:这里需要对pom文件进行修改,将jdk、hadoop、hbase、hive等组件的版本号进行统一,与你使用的版本号一致即可。

  成功后出现以下图所示:

高可用Hadoop平台-Oozie工作流1.概述2.内容介绍3.Oozie Server4.截图预览5.总结6.结束语

  生成的路径地址如下所示:

  此时,我们修改oozie的环境变量,如下所示:

  接着,我们在$oozie_home目录下创建一个文件夹用于存放extjs和hadoop的jar文件,这里我们将前面下载的extjs的压

缩包和hadoop的share目录下的jar文件拷贝到libext文件夹下即可。由于,我们使用了mysql来存储oozie的元数据,所以需要用到

mysql的驱动包,因而,我们需要将mysql的驱动包拷贝到libext目录下。

  在准备完这些后,下面我们开始安装,命令如下所示:

  生成以下信息,表示成功,内容如下所示:

  若失败,可根据提示做对应的处理。

  这样,我们在/home/hadoop/oozie-4.2.0/distro/target/oozie-4.2.0-distro/oozie-4.2.0/oozie-server/webapps目录下就生成了oozie.war文件。

  我们在$oozie_home/conf目录下修改oozie-site.xml文件,内容如下所示:

  这里我们使用手动去创建数据库,oozie.service.jpaservice.create.db.schema若为true属性,即表示去自动创建。手动创建脚本如下所示:

  然后,我们使用以下命令,生成数据表:

  生成以下内容:

  若执行正常,会生成oozie.sql的脚本,如下图所示:

高可用Hadoop平台-Oozie工作流1.概述2.内容介绍3.Oozie Server4.截图预览5.总结6.结束语

  接下来,我们去启动oozie,命令如下所示:

  正常启动内容如下所示:

  然后,我们可以输入浏览地址,查看是否启动正常,如下图所示:

高可用Hadoop平台-Oozie工作流1.概述2.内容介绍3.Oozie Server4.截图预览5.总结6.结束语

  关于oozie的集成,会有点繁琐,本篇博客只是针对单独的oozie去集成,后续博客会给大家介绍oozie集成到hadoop集群,以及相关工作流的用法介绍等。

  这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!