复制代码
输入密码登录成功。
安装配置Tomcat
下载安装Tomcat Web服务器:
- wget http://apache.dataguru.cn/tomcat/tomcat-7/v7.0.52/bin/apache-tomcat-7.0.52.tar.gz
- tar xvzf apache-tomcat-7.0.52.tar.gz
复制代码
设置环境变量:- export CATALINA_HOME=/home/shirdrn/cloud/programs/apache-tomcat-7.0.52
- export PATH=$PATH:$CATALINA_HOME/bin
复制代码
如果使用MySQL存储Oozie数据,需要将MySQL的驱动程序拷贝到Tomcat安装目录下,亦即$CATALINA_HOME/lib下面。
准备ExtJS工具包
下载ExtJS压缩包:
- wget http://extjs.com/deploy/ext-2.2.zip
复制代码
安装Oozie
下载安装,执行如下命令:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">wget http://mirror.bit.edu.cn/apache/oozie/3.3.2/oozie-3.3.2.tar.gz
- tar xvzf oozie-3.3.2.tar.gz
- cd oozie-3.3.2
- bin/mkdistro.sh -DskipTests
- </font></font>
复制代码
构建成后,可以在oozie-3.3.2/distro/target目录下看到构建后的文件,例如我的路径是/home/shirdrn/cloud/programs/oozie-3.3.2/distro/target/oozie-3.3.2-distro/oozie-3.3.2,内容如下所示:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">[shirdrn@oozie-server oozie-3.3.2]$ pwd
- /home/shirdrn/cloud/programs/oozie-3.3.2/distro/target/oozie-3.3.2-distro/oozie-3.3.2
- [shirdrn@oozie-server oozie-3.3.2]$ ls
- bin lib oozie-core oozie-sharelib-3.3.2.tar.gz
- conf libtools oozie-examples.tar.gz oozie.war
- docs.zip oozie-client-3.3.2.tar.gz oozie-server release-log.txt
- </font></font>
复制代码
将OOZIE_HOME变量指向该目录,修改~/bashrc文件:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">export OOZIE_HOME=/home/shirdrn/cloud/programs/oozie-3.3.2/distro/target/oozie-3.3.2-distro/oozie-3.3.2
- export PATH=$PATH:$OOZIE_HOME/bin
- </font></font>
复制代码
将ExtJS工具包拷贝到目录$OOZIE_HOME中:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">cp ~/cloud/programs/oozie-3.3.2/ext-2.2.zip $OOZIE_HOME/
- </font></font>
复制代码
在上面的目录下创建libext目录,并将hadoop相关的jar库文件拷贝到libext下面,我使用的是Hadoop 1.2.1版本:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">[shirdrn@oozie-server oozie-3.3.2]$ mkdir libext
- [shirdrn@oozie-server oozie-3.3.2]$ cp ~/cloud/programs/hadoop-1.2.1/hadoop-*.jar libext/
- [shirdrn@oozie-server oozie-3.3.2]$ cp ~/cloud/programs/hadoop-1.2.1/lib/*.jar ./libext/
- </font></font>
复制代码
同时,我们使用了MySQL来存储Oozie的元数据,现在需要将MySQL的驱动程序添加到libext目录下:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">cp ~/packages/mysql-connector-java-5.1.29/mysql-connector-java-5.1.29/mysql-connector-java-5.1.29-bin.jar libext/</font></font>
复制代码
执行下面的命令开始安装:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">bin/oozie-setup.sh prepare-war
- </font></font>
复制代码
这样,上述已经生成了/home/shirdrn/cloud/programs/oozie-3.3.2/distro/target/oozie-3.3.2-distro/oozie-3.3.2/oozie-server/webapps/oozie.war文件。
配置Oozie
修改conf/oozie-site.xml配置文件,内容如下所示:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu"><property>
- <name>oozie.service.JPAService.jdbc.driver</name>
- <value>com.mysql.jdbc.Driver</value>
- <description>
- JDBC driver class.
- </description>
- </property>
- <property>
- <name>oozie.service.JPAService.jdbc.url</name>
- <value>jdbc:mysql://mysql-server:3306/oozie</value>
- <description>
- JDBC URL.
- </description>
- </property>
- <property>
- <name>oozie.service.JPAService.jdbc.username</name>
- <value>shirdrn</value>
- <description>
- DB user name.
- </description>
- </property>
- <proerty>
- <name>oozie.service.JPAService.jdbc.password</name>
- <value>0o21e</value>
- <description>
- 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.
- </description>
- </property>
- </font></font>
复制代码
默认情况下,Oozie的配置中有个配置项oozie.service.JPAService.create.db.schema,值为false,设置非自动创建数据库,我们保持默认设置,这样可以通过手动创建Oozie数据库,并对其进行权限控制。然后,我们在MySQL数据库中创建数据库,名称为oozie,并进行访问授权:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">CREATE DATABASE oozie;
- GRANT ALL ON oozie.* TO 'shirdrn'@'oozie-server' IDENTIFIED BY '0o21e';
- FLUSH PRIVILEGES;
- </font></font>
复制代码
然后可以执行如下命令,生成Oozie所需要的数据表:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">bin/ooziedb.sh create -sqlfile oozie.sql -run</font></font>
复制代码
查看控制台输出日志,没有报错,并且在当前目录下可以看到,同时也生成了oozie.sql脚本文件。到MySQL数据库中可以看到生成的表,说明上述操作执行成功。
下面可以启动Oozie,使用如下命令:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu"> bin/oozied.sh start
- </font></font>
复制代码
由于启动信息过多,这里便不贴出来了!
从上面日志可以看到,Oozie管理控制台连接为http://oozie-server:11000/oozie,可以看到图形化界面。
整合Oozie和Hadoop
我们的Hadoop平台使用的是用户shirdrn,用户组为shirdrn,这里配置Hadoop代理用户也使用该用户,部署Oozie的主机名为oozie-server。修改Hadoop的配置文件core-site.xml,增加如下配置内容:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu"><!-- OOZIE -->
- <property>
- <name>hadoop.proxyuser.shirdrn.hosts</name>
- <valuee>oozie-server</value>
- </property>
- <property>
- <name>hadoop.proxyuser.shirdrn.groups</name>
- <value>shirdrn</value>
- </property>
- </font></font>
复制代码
修改完上述配置后,需要重新启动Hadoop集群才能生效。
安装Oozie Client
我们可以通过在外部的一个Oozie客户端去提交工作流任务,实际上就是一个客户端程序,通过与Oozie Server进行交互,提交任务,并由Oozie Server去调用执行。
我们可以回到前面解压缩Oozie发行包oozie-3.3.2.tar.gz的目录下,通过前面的构建,现在已经可以看到有一个client目录,该目录下就是Oozie的客户端相关文件。含有Oozie客户端脚本的路径,我这里为/home/shirdrn/cloud/programs/oozie-3.3.2/client/target/oozie-client-3.3.2-client/oozie-client-3.3.2。
查看Oozie客户端运行job的命令帮助信息,可以执行如下命令:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">cd /home/shirdrn/cloud/programs/oozie-3.3.2/client/target/oozie-client-3.3.2-client/oozie-client-3.3.2
- bin/oozie help
- bin/oozie help job
- </font></font>
复制代码
我们可以找到,Oozie发行包中自带的examples,我这里对应的目录是/home/shirdrn/cloud/programs/oozie-3.3.2/examples/target/oozie-examples-3.3.2-examples/examples/apps,我们可以通过运行这些例子来验证安装是否成功。
首先,将Oozie自带的examples上传到HDFS上:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">bin/hadoop fs -mkdir /oozie
- bin/hadoop fs -copyFromLocal /home/shirdrn/cloud/programs/oozie-3.3.2/examples/target/oozie-examples-3.3.2-examples/examples /user/shirdrn/examples</font></font>
复制代码
我们拿examples中的map-reduce来进行验证,修改job.properties文件,配置内容如下所示:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">nameNode=hdfs://m1:9000
- jobTracker=m1:19830
- queueName=default
- examplesRoot=examples
- oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/map-reduce
- outputDir=map-reduce
- </font></font>
复制代码
我的环境下,Namenode服务端口为hdfs://m1:9000,JobTracker为m1:19830,运行任务,执行如下命令:
- <font color="rgb(64, 64, 64)"><font face="Ubuntu">cd /home/shirdrn/cloud/programs/oozie-3.3.2/client/target/oozie-client-3.3.2-client/oozie-client-3.3.2
- bin/oozie job -oozie http://oozie-server:11000/oozie -config /home/shirdrn/cloud/programs/oozie-3.3.2/examples/target/oozie-examples-3.3.2-examples/examples/apps/map-reduce/job.properties -run</font></font>
复制代码
可以通过OozieWeb管理控制台查看提交运行的任务,如图所示:
以及,job配置,运行状态等信息,如图所示:
上面命令选项-run表示直接运行一个job,当然你可以使用其他选项,如-submit是提交job,-rerun是重新运行job,-suspend是挂起job等等,可以查看命令帮助,或参考相关文档。