网站搜索

在 RHEL/CentOS 6/5 上安装和配置适用于 CDH 4.X 的 Apache Oozie 工作流调度程序


OozieHadoop的开源调度程序,它简化了工作流程和作业之间的协调。我们可以定义输入数据的作业之间的依赖关系,因此可以使用 ooze 调度程序自动执行作业依赖关系。

在本教程中,我在我的主节点上安装了 Oozie (即 master 作为主机名,并且安装了 namenode/JT),但是在生产系统中oozie 应安装在单独的 Hadoop 节点上。

安装说明分为两部分,我们称之为AB

  1. A. Oozie 安装。
  2. B. Oozie 配置。

让我们首先使用以下“主机名”命令验证系统主机名。

[root@master]# hostname

master

方法 A:在 RHEL/CentOS 6/5 上安装 Oozie

我们使用 cloudera 网站上的官方 CDH 存储库来安装 CDH4。前往官方CDH下载部分并下载CDH4(即4.6)版本,或者您也可以使用以下wget命令下载存储库并安装它。

在 RHEL/CentOS 6 上
wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/i386/cloudera-cdh-4-0.i386.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.i386.rpm

wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm
在 RHEL/CentOS 5 上
wget http://archive.cloudera.com/cdh4/one-click-install/redhat/5/i386/cloudera-cdh-4-0.i386.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.i386.rpm

wget http://archive.cloudera.com/cdh4/one-click-install/redhat/5/x86_64/cloudera-cdh-4-0.x86_64.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm

一旦您在系统下添加了 CDH 存储库,您就可以使用以下命令在系统上安装 Oozie。

[root@master ~]# yum install oozie

现在,安装 oozie 客户端(上面的命令应该涵盖客户端安装部分,但如果没有,请尝试下面的命令)。

[root@master ~]# yum install oozie-client

注意:上述安装还将 oozie 服务配置为在系统启动时运行。好工作!我们已经完成了安装的第一部分,现在让我们进入第二部分来配置 oozie。

方法 B:RHEL/CentOS 6/5 上的 Oozie 配置

由于 oozie 不直接与 Hadoop 交互,因此我们这里不需要任何映射配置。

注意:请在 oozie 未运行时配置所有设置,这意味着您必须在 oozie 服务未运行时执行以下步骤。

Oozie 默认内置“Derby”数据库,但我建议您使用 Mysql 数据库。那么,让我们使用下面的文章来安装MySQL数据库。

  1. 在RHEL/CentOS 6/5中安装MySQL数据库

完成安装部分后,下一步进一步创建 oozie DB 并授予权限,如下所示。

[root@master ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.38 MySQL Community Server (GPL) by Remi

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

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

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

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

mysql> exit
Bye

接下来,配置 MySQL 的 Oozie 属性。打开“oozie-site.xml”文件并编辑以下属性,如图所示。

[root@master ~]# cd /etc/oozie/conf
[root@master conf]# vi oozie-site.xml

输入以下属性(只需将 master [我的主机名] 替换为您的主机名)。

<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://master: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 连接驱动程序 JAR 并将其添加到 Oozie lib 目录。为此,请在终端上运行以下命令。

[root@master oozie]# cd /tmp/
[root@master tmp]# wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.31.tar.gz
[root@master tmp]# tar -zxf mysql-connector-java-5.1.31.tar.gz	
[root@master tmp]# cd mysql-connector-java-5.1.31
[root@master mysql-connector-java-5.1.31]# cp mysql-connector-java-5.1.31-bin.jar /var/lib/oozie/

通过执行以下命令创建 oozie 数据库架构,请注意,这应该以 oozie 用户身份运行。

[root@master ~]# sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -run
样本输出
setting OOZIE_CONFIG=/etc/oozie/conf
setting OOZIE_DATA=/var/lib/oozie
setting OOZIE_LOG=/var/log/oozie
setting OOZIE_CATALINA_HOME=/usr/lib/bigtop-tomcat
setting CATALINA_TMPDIR=/var/lib/oozie
setting CATALINA_PID=/var/run/oozie/oozie.pid
setting CATALINA_BASE=/usr/lib/oozie/oozie-server-0.20
setting CATALINA_OPTS=-Xmx1024m
setting OOZIE_HTTPS_PORT=11443
...
DONE
Oozie DB has been created for Oozie version '3.3.2-cdh4.7.0'
The SQL commands have been written to: /tmp/ooziedb-8250405588513665350.sql

您需要从互联网下载 ExtJS lib 才能启用 oozie Web 控制台。前往CDH ExtJS官方页面,下载ExtJS版本2.2库,或者您可以使用以下命令下载软件包。

[root@master ~]# cd /tmp/
[root@master tmp]# wget http://archive.cloudera.com/gplextras/misc/ext-2.2.zip
[root@master tmp]# unzip ext-2.2.zip
[root@master tmp]# mv ext-2.2 /var/lib/oozie/

最后,通过运行以下命令启动 oozie 服务器。

[root@master tmp]# service oozie status
not running.

[root@master tmp]# service oozie start

[root@master tmp]# service oozie status
running

[root@master tmp]# oozie admin -oozie http://localhost:11000/oozie -status
System mode: NORMAL

使用您最喜欢的浏览器打开 oozie UI,然后指向您的 IP 地址。在本例中,我的 IP 是 192.168.1.129

http://192.168.1.129:11000

现在,如果您看到这个 UI。恭喜!您已成功配置 oozie。

此过程已在 RHEL/CentOS 6/5 上成功测试。在我即将发表的文章中,我将分享如何通过 oozie 配置和调度 hadoop 作业。保持联系以获取更多信息,不要忘记评论您的反馈。