昨天在学习《Hadoop权威指南》中关于oozie的内容,本以为不算难,结果却踩了不少坑
由于oozie编译时只能运行sh文件,所以不可避免要安装Cygwin。64位的Cygwin下载地址如下
链接:https://pan.baidu.com/s/1RoL6lyvPyiFPwVEVfowvgg ,提取码:ioi8
安装过程请参见博文https://blog.csdn.net/chunleixiahe/article/details/55666792
下载oozie4.3的源码,地址如下
链接:https://pan.baidu.com/s/13PKfDTwGNQDWS5DqrktMPA ,提取码:c5n9
解压到某个文件夹(以D:\develop为例),然后打开cygwin,cd到bin目录下,参考命令
cd /cygdrive/d/develop/oozie-4.3.0/bin
在编译前,先给maven设置java堆栈内存大小,以防oom
export MAVEN_OPTS='-Xms256m -Xmx1024m'
然后进行编译,命令如下
./mkdistro.sh -DskipTests
编译完成后,在oozie-4.3.0目录下会有target文件夹,cd到target\distro目录,新建extra_libs目录(而不是libext)
cd D:\develop\oozie-4.3.0\distro\target\oozie-4.3.0-distro
mkdir extra_libs
然后把hadoop中所有jar包、mysql的驱动jar包都复制到extra_libs里。其中复制hadoop中所有jar包的命令如下所示
cp /cygdrive/d/develop/hadoop-2.8.5/share/hadoop/*/*.jar ./extra_libs
cp /cygdrive/d/develop/hadoop-2.8.5/share/hadoop/*/lib/*.jar ./extra_libs
我们还需要一个ext-2.2的zip包,下载下来后也放到extra_libs里。下载链接如下
链接:https://pan.baidu.com/s/1wM2zYsz_Gdi5xzec9Be3Aw ,提取码:9mip
然后,在oozie4.3.0根目录下,搜索oozie-core-4.3.0.jar和oozie-client-4.3.0.jar,把它们复制到D:\develop\oozie-4.3.0\distro\target\oozie-4.3.0-distro\oozie-4.3.0\lib下,然后下载jdom、json_simple、commons-cli和openjpa的jar包,也复制到lib目录下。这几个文件的下载链接如下
链接:https://pan.baidu.com/s/1RKOhfs-WD0G8S4ogGP452w ,提取码:krgp
然后,打开conf\oozie-site.xml文件,复制以下内容
oozie.service.JPAService.create.db.schema
true
oozie.service.JPAService.jdbc.driver
com.mysql.jdbc.Driver
oozie.service.JPAService.jdbc.url
jdbc:postgresql://l-tdata2.tkt.cn6.qunar.com/oozie?createDatabaseIfNotExist=true
oozie.service.JPAService.jdbc.username
**
oozie.service.JPAService.jdbc.password
**
oozie.service.HadoopAccessorService.hadoop.configurations
*=D:\develop\hadoop-2.8.5\etc\hadoop
oozie.service.JPAService.jdbc.url
jdbc:mysql://localhost:3306/oozie
oozie.service.JPAService.jdbc.username
root
oozie.service.JPAService.jdbc.password
root
oozie.service.WorkflowAppService.system.libpath
hdfs://localhost/user/oozie/share/lib
注意把hadoop的路径、数据库的用户名密码都改成自己的
最后,切换到bin目录下(这时可以用cmd了,因为里面有cmd文件),执行命令
oozie-setup.cmd prepare-war
生成war包,然后执行命令
oozie-setup.cmd db create -run -sqlfile oozie.sql
生成oozie.sql文件,打开navicat,创建oozie数据库,右键之,选择执行sql文件,找到oozie.sql,执行之。
如果执行oozie.sql不顺利,可以把创建索引语句都删除,在查询里,先执行建表语句,再执行两条插入语句。
至此,oozie4.3就安装完了,运行bin目录下的oozied.cmd,即可启动之
oozied.cmd start
在浏览器里输入url
http://localhost:11000/oozie/
即可看到web界面
最后,为了方便大家,我把我编译好的distro、生成好的war、jar全分享给大家,让大家避免走弯路
distro压缩包:
链接:https://pan.baidu.com/s/1wMEo0-s7FLilSk0JBBuZBQ 提取码:kvs7
war:
链接:https://pan.baidu.com/s/1pLHum3vK147oxWxX4jlt0w 提取码:g4lj
jar:
链接:https://pan.baidu.com/s/1JfjQ-UJdfmGF59WintpYdg 提取码:n1na