Alex 的 Hadoop 菜鸟教程: 第20课 工作流引擎 Oozie

本文基于 Centos6.x + CDH5.x

Oozie是什么

简单的说Oozie是一个工作流引擎。只不过它是一个基于Hadoop的工作流引擎,在实际工作中,遇到对数据进行一连串的操作的时候很实用,不需要自己写一些处理代码了,只需要定义好各个action,然后把他们串在一个工作流里面就可以自动执行了。对于大数据的分析工作非常有用

安装Oozie

Oozie分为服务端和客户端,我现在选择host1作为服务端,host2作为客户端。
所以在host1上运行
yum install oozie

在host2上运行
yum install oozie-client

配置Oozie

配置Oozie使用的MapReduce版本,MapReduce版本有两个一个是 MRv1 和 YARN。因为我们选择的是YARN,而且我为了方便上手暂时不用SSL,所以切换成不带SSL并且使用YARN
alternatives --set oozie-tomcat-conf /etc/oozie/tomcat-conf.http

设置Oozie使用的数据库

这里提到的数据库是关系型数据库,用来存储Oozie的数据。Oozie自带一个Derby,不过Derby只能拿来实验的玩玩,不能上战场的。这里我选择mysql作为Oozie的数据库
我假设你已经安装好了mysql数据库,接下来就是创建Oozie用的数据库
$ mysql -u root -p
Enter password: ******

mysql> create database oozie;
Query OK, 1 row affected (0.03 sec)

mysql>  grant all privileges on oozie.* to 'oozie'@'localhost' identified by 'oozie';
Query OK, 0 rows affected (0.03 sec)

mysql>  grant all privileges on oozie.* to 'oozie'@'%' identified by 'oozie';
Query OK, 0 rows affected (0.03 sec)

编辑 oozie-site.xml 配置mysql的连接属性
<property>
        <name>oozie.service.JPAService.jdbc.driver</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.url</name>
        <value>jdbc:mysql://localhost:3306/oozie</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.username</name>
        <value>oozie</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.password</name>
        <value>oozie</value>
    </property>

把mysql的jdbc驱动做一个软链到 /var/lib/oozie/
$ sudo yum install mysql-connector-java  
$ ln -s /usr/share/java/mysql-connector-java.jar /var/lib/oozie/mysql-connector-java.jar
第一行,如果你已经装过 mysql-connector-java 可以跳过这步


创建oozie需要的表结构
$ sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -run

打开Web控制台

Step1

Oozie使用的是ExtJs,所以得先下载一个ext http://archive.cloudera.com/gplextras/misc/ext-2.2.zip 

Step2

解压开 ext-2.2.zip 并拷贝到 /var/lib/oozie.
# unzip ext-2.2.zip 
# mv ext-2.2 /var/lib/oozie/


在HDFS上安装Oozie库

为oozie分配hdfs的权限,编辑所有机器上的 /etc/hadoop/conf/core-site.xml ,增加如下配置
   <property>
      <name>hadoop.proxyuser.oozie.hosts</name>
      <value>*</value>
   </property>
   <property>
      <name>hadoop.proxyuser.oozie.groups</name>
      <value>*</value>
   </property>
并重启hadoop的service(namenode 和 datanode  就行了)


拷贝Oozie的Jars到HDFS,让DistCp, Pig, Hive, and Sqoop 可以调用


$ sudo -u hdfs hadoop fs -mkdir /user/oozie
$ sudo -u hdfs hadoop fs -chown oozie:oozie /user/oozie
$ sudo oozie-setup sharelib create -fs hdfs://mycluster/user/oozie -locallib /usr/lib/oozie/oozie-sharelib-yarn.tar.gz

这里的mycluster请自行替换成你的clusterId

启动Oozie

$ sudo service oozie start

使用Oozie

连接Oozie的方法

连接Oozie有三个方法

用客户端连接

由于我的client端装在了host2上,所以在host2上运行
$ oozie admin -oozie http://host1:11000/oozie -status
System mode: NORMAL
为了方便,不用每次都输入oozie-server所在服务器,我们可以设置环境变量
$ export OOZIE_URL=http://host1:11000/oozie
$ oozie admin -version
Oozie server build version: 4.0.0-cdh5.0.0

用浏览器访问

打开浏览器访问 http://host1:11000/oozie


用HUE访问

上节课我们讲了HUE的使用,现在可以在hue里面配置上Oozie的参数。用HUE来使用Oozie。
  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值