五十九、Oozie的简介与安装

Oozie是一个基于工作流引擎的开源框架,由Cloudera公司贡献给Apache,提供对Hadoop MapReduce、Pig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。主要用于定时调度任务,多任务可以按照执行的逻辑顺序调度。关注专栏《破茧成蝶——大数据篇》,查看更多相关的内容~


目录

一、Oozie的简介

1.1 简介

1.2 模块

1.3 Workflow常用节点

二、Oozie的安装部署

2.1 安装CDH版本的Hadoop

2.1.1 上传解压安装包

2.1.2 修改配置文件

2.1.3 分发

2.1.4 测试

2.2 安装Oozie

2.2.1 上传并解压Oozie安装包

2.2.2 解压oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz到Oozie的根目录

2.2.3 在Oozie目录下创建libext目录

2.2.4 添加jar包

2.2.5 拷贝ext-2.2.zip

2.2.6 修改Oozie配置文件

2.2.7 在MySQL中创建oozie数据库

2.2.8 初始化Oozie

2.2.9 启动/关闭Oozie


一、Oozie的简介

1.1 简介

一个基于工作流引擎的开源框架,是由Cloudera公司贡献给Apache的,它能够提供对HadoopMapReduce和Pig Jobs的任务调度与协调。Oozie需要部署到Java Servlet容器中运行。Oozie工作流定义,同JBoss jBPM提供的jPDL一样,也提供了类似的流程定义语言hPDL,通过XML文件格式来实现流程的定义。对于工作流系统,一般都会有很多不同功能的节点,比如分支、并发、汇合等等。Oozie定义了控制流节点(Control Flow Nodes)和动作节点(Action Nodes),其中控制流节点定义了流程的开始和结束,以及控制流程的执行路径(Execution Path),如decision、fork、join等;而动作节点包括Hadoop map-reduce、Hadoop文件系统、Pig、SSH、HTTP、Email和Oozie子流程。

1.2 模块

1、Workflow:顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个)。2、Coordinator:定时触发workflow。3、Bundle:绑定多个Coordinator。

1.3 Workflow常用节点

1、控制流节点(Control Flow Nodes):控制流节点一般都是定义在工作流开始或者结束的位置,比如start、end、kill等。以及提供工作流的执行路径机制,如decision,fork,join等。2、动作节点(Action  Nodes):负责执行具体动作的节点,比如:拷贝文件,执行某个Shell脚本等等。

二、Oozie的安装部署

2.1 安装CDH版本的Hadoop

2.1.1 上传解压安装包

首先还是上传安装包并解压到相关目录:

[root@master software]# tar -zxvf hadoop-2.5.0-cdh5.3.6.tar.gz -C ../modules/cdh/

2.1.2 修改配置文件

修改/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop目录下的相关配置文件:

1、修改slaves配置文件

master
slave01
slave02

2、修改yarn-env.sh配置文件

export JAVA_HOME=/opt/modules/jdk1.8.0_144

3、修改mapred-env.sh配置文件

export JAVA_HOME=/opt/modules/jdk1.8.0_144

4、修改hadoop-env.sh配置文件

export JAVA_HOME=/opt/modules/jdk1.8.0_144

5、修改core-site.xml配置文件


	
	
        fs.defaultFS
		hdfs://master:8020
	
	
	
        hadoop.tmp.dir
        /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/data/tmp
	
	
	
	
		hadoop.proxyuser.root.hosts
		*
	
	
	
	
		hadoop.proxyuser.root.groups
		*
	

6、修改hdfs-site.xml配置文件


	
	
        dfs.replication
        3
	
	
	
  		dfs.namenode.secondary.http-address
  		slave02:50090
	

7、修改mapred-site.xml配置文件


	
	
          mapreduce.framework.name
          yarn
	

	
	
	  mapreduce.jobhistory.address
	  slave01:10020
	
	
    	  mapreduce.jobhistory.webapp.address
    	  slave01:19888
	

8、修改yarn-site.xml配置文件



	
	
        yarn.nodemanager.aux-services
        mapreduce_shuffle
	
	
	
        yarn.resourcemanager.hostname
        slave01
	

	
	 
		yarn.log.server.url 
		http://master:19888/jobhistory/logs/ 
	

2.1.3 分发

将配置好的目录分发到集群机器各节点:

2.1.4 测试

1、格式化NameNode

bin/hdfs namenode -format

2、启动集群

1、master节点
sbin/start-dfs.sh


2、slave01节点
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver

3、监控界面看一下启动是否正常

五十九、Oozie的简介与安装_第1张图片

4、测试,新建一个文件测试wordcount,跑通说明集群没有问题。

五十九、Oozie的简介与安装_第2张图片

2.2 安装Oozie

2.2.1 上传并解压Oozie安装包

[root@master software]# tar -zxvf oozie-4.0.0-cdh5.3.6.tar.gz -C ../modules/

2.2.2 解压oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz到Oozie的根目录

[root@master oozie-4.0.0-cdh5.3.6]# tar -zxvf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C ../

五十九、Oozie的简介与安装_第3张图片

2.2.3 在Oozie目录下创建libext目录

[root@master oozie-4.0.0-cdh5.3.6]# mkdir libext

2.2.4 添加jar包

[root@master oozie-4.0.0-cdh5.3.6]# cp -ra hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/* ./libext/
[root@master oozie-4.0.0-cdh5.3.6]# cp -a /opt/software/mysql-connector-java-5.1.47.jar ./libext/

2.2.5 拷贝ext-2.2.zip

[root@master libext]# cp /opt/software/ext-2.2.zip ./

ext是一个js框架,用于展示oozie前端页面。

2.2.6 修改Oozie配置文件

修改Oozie的配置文件oozie-site.xml,如下:

    
        oozie.service.JPAService.jdbc.driver
        com.mysql.jdbc.Driver
        
            JDBC driver class.
        
    
	
    
        oozie.service.JPAService.jdbc.url
        jdbc:mysql://master:3306/oozie
        
            JDBC URL.
        
    
	
    
        oozie.service.JPAService.jdbc.username
        root
        
            DB user name.
        
    

    
        oozie.service.JPAService.jdbc.password
        p@ssw0rd
        
            DB user password.

            IMPORTANT: if password is emtpy leave a 1 space string, the service trims the value,
                       if empty Configuration assumes it is NULL.
        
    
	
    
        oozie.service.HadoopAccessorService.hadoop.configurations
        *=/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop
        
            Comma separated AUTHORITY=HADOOP_CONF_DIR, where AUTHORITY is the HOST:PORT of
            the Hadoop service (JobTracker, HDFS). The wildcard '*' configuration is
            used when there is no exact match for an authority. The HADOOP_CONF_DIR contains
            the relevant Hadoop *-site.xml files. If the path is relative is looked within
            the Oozie configuration directory; though the path can be absolute (i.e. to point
            to Hadoop client conf/ directories in the local filesystem.
        
    

2.2.7 在MySQL中创建oozie数据库

create database oozie;

2.2.8 初始化Oozie

1、上传Oozie目录下的yarn.tar.gz文件到HDFS。

bin/oozie-setup.sh sharelib create -fs hdfs://master:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz

监控界面可以发现有目录生成:

五十九、Oozie的简介与安装_第4张图片

2、创建oozie.sql文件

bin/ooziedb.sh create -sqlfile oozie.sql -run

3、打包项目,生成war包

bin/oozie-setup.sh prepare-war

2.2.9 启动/关闭Oozie

bin/oozied.sh start/stop

五十九、Oozie的简介与安装_第5张图片

 

以上就是本文的所有内容,比较简单。你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题~

你可能感兴趣的:(破茧成蝶——大数据篇,oozie集成,大数据)