1.从apache的官网下载oozie3.3.2
2.编译oozie,以下命令用root来执行吧,它不做任何的测试的,因为一测试就会出错的
官网估计也知道,所以顺便也提供了一个跳过参数的命令。。。
bin/mkdistro.sh -DskipTests
编译完成之后的实际可运行程序位于oozie/distro/target/oozie-3.3.2-distro/ 目录下
我好不容易找到了这个目录,我把它已到了/usr目录下面
3.在oozie的目录下建立一个libext文件件,然后把hadoop的jar加进去,因为3.3.2默认是支持1.1.1的,用以下这句命令
bin/oozie-setup.sh prepare-war hadoop 1.1.2 /usr/hadoop/
这个命令其实是在oozie-server/webapps里面生成一个可以部署的包的,但是最后它会出错,说有jar包没找到,没关系不影响。
4.配置oozie存储数据用mysql
首先添加mysql连接的jar包和ext-2.2.zip添加到oozie里面的libext目录下,
bin/oozie-setup.sh prepare-war
就这句命令就行,它会自动把libext目录下的所有包自动添加到目标的war包当中,我就碰到mysql报错,oozie的web的查看不了的问题,出问题就在这一步,网上根本找不到资料,试了好多办法都解决不了,最后再认真细看了官方文档才知道这个诀窍,之前添加hadoop的jar包那一步不成功,可能的原因就是因为默认支持的版本不一样吧,oozie3.3.2默认支持1.1.1的,我的是1.1.2的,它要查找的包在我的版本已经没了。。。所以导致最后生成war包不成功。
貌似这一步是把jar包加到它的war包里面的此外我们还要把这个jar包放到libext里面
修改conf下面的oozie-site.xml设置mysql的属性,修改为以下内容。
<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://localhost:3306/oozie</value>
<description>
JDBC URL.
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>oozie</value>
<description>
DB user name.
</description>
</property>
手动建库
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)
mysql> exit
执行以下脚本建表
bin/ooziedb.sh create -sqlfile oozie.sql -run
启动oozie,为了方便bin/oozied.sh start 这个加到了开机启动脚本里面
后台运行命令:
$ bin/oozied.sh start
前台运行命令:
$ bin/oozied.sh run
启动成功,oh,yeah,这只是第一步,好吧,到此为止吧,晚上00:22分了。
下面这个命令是用来检查oozie的健康状况的:
$ bin/oozie admin -oozie http://localhost:11000/oozie -status