Oozie安装部署
1.oozie包的编译下载
oozie-3.0.*版本或者之前的版本是可以离线安装的(例如oozie-3.0.2-distro.tar.gz),在后来往上更高的版本都是需要在线安装的(例如 oozie-3.3.2-distro.tar.gz和oozie-4.0.0-distro.tar.gz等),这个过程需要用到MAVEN工具,在编译的过程中可能会碰到依赖问题,可以修改相关的POM文件。编译之后可以在OOZIE_HOME/distro/target/下找到oozie-3.3.2-distro 或者 oozie-4.0.0-distro,这些就是编译好的版本。
2.解压相关tar包
tar -xzvf oozie-3.3.2-distro.tar.gz
3. 进入到解压好的目录下面,编辑 bin/addtowar.sh文件,修改相应的hadoop版本支持,4.0.0可以不用修改。
if [ "${version}" = "0.20.1" ]; then
#List is separated by ":"
hadoopJars="hadoop*core*.jar"
elif [ "${version}" = "0.20.2" ]; then
#List is separated by ":"
hadoopJars="hadoop*core*.jar"
elif [ "${version}" = "0.20.104" ]; then
#List is separated by ":"
hadoopJars="hadoop*core*.jar:jackson-core-asl-*.jar:jackson-mapper-asl-*.jar"
elif [ "${version}" = "1.2.1" ]; then
#List is separated by ":"
hadoopJars="hadoop*core*.jar:jackson-core-asl-*.jar:jackson-mapper-asl-*.jar:commons-configuration-*.jar"
修改成需要匹配的hadoop版本
4. 修改conf/oozie-site.xml文件中的数据库配置,修改相关JPAService选项,也可不修改,使用自带的derby数据库。
<property>
<name>oozie.service.JPAService.create.db.schema</name>
<value>true</value>
</property>
<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://192.168.9.156: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>
5.在oozie-3.3.2下新建文件夹libext,将mysql驱动包放入其中
6. oozie-3.3.2版本执行
./bin/oozie-setup.sh -hadoop 1.2.1 ${HADOOP_HOME} -extjs ../ext-2.2.zip,
命令会拷贝hadoop、ext相应的包到oozie的war中,
4.4.0的版本是把相关的hadoop、ext包拷贝到libext下, 执行
./bin/oozie-setup.sh prepare-war
4.0.0以前版本:
$OOZIE_HOME/bin/oozie-setup.sh -hadoop 2.2.0 ${HADOOP_PREFIX} -extjs /ext-2.2.zip
4.0.0版本:
$ bin/oozie-setup.sh prepare-war [-d directory] [-secure]
sharelib create -fs <FS_URI> [-locallib <PATH>]
sharelib upgrade -fs <FS_URI> [-locallib <PATH>]
db create|upgrade|postupgrade -run [-sqlfile <FILE>]
7.启动oozie
./bin/oozie-run.sh 或者用 ./bin/oozied.sh run
在浏览器中查看 http://namenode:11000/oozie 看到相关页面则表示安装成功
如果在访问过程中报访问拒绝异常,查看hadoop conf/core-site.xml文件是否有以下内容
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>namenode</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>hadoop</value>
</property>
Oozie运行Hadoop
1.解压oozie目录下的oozie-client-3.3.2.tar.gz、oozie-examples.tar.gz、oozie-sharelib-3.3.2.tar.gz
2.拷贝examples目录到HDFS上面
hadoop fs –copyFromLocal examples /user/hadoop/
3.修改oozie目录下examples/apps/map-reduce/job.properties
主要是修改NameNode和JobTracker的值
nameNode=hdfs://centos.master:9000
jobTracker=centos.master:9001
4.执行相关命令
bin/oozie job -oozie http://centos.master:11000/oozie -config ../examples/apps/map-reduce/job.properties -run
可以修改/etc/profile
export OOZIE_URL=http://centos.master:11000/oozie
以后执行就不必在带上
-oozie http://centos.master:11000/oozie
Oozie运行Hive
1.运行Hive需要用到hive-site.xml文件以及对应版本的hive的jar包,于是将hive-site.xml文件和当前所用hive版本下相关的jar包上传到HDFS上面。
2.修改examples/apps/hive/workflow.xml文件,主要添加对hive-site.xml配置的支持
<job-xml>${hiveSitePath}</job-xml>
其中需要注意事项:job-xml顺序
<xs:sequence>
<xs:element name="job-tracker" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="name-node" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="prepare" type="hive:PREPARE" minOccurs="0" maxOccurs="1"/>
<xs:element name="job-xml" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="configuration" type="hive:CONFIGURATION" minOccurs="0" maxOccurs="1"/>
<xs:element name="script" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="file" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="archive" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
3.修改examples/apps/hive/job.properties文件,在文件中添加相关位置的配置
hiveSitePath=${nameNode}/user/${user.name}/hive/hive-site.xml
oozie.libpath=${nameNode}/user/${user.name}/share/lib/hive
4.执行命令
bin/oozie job -config ../examples/apps/hive/job.properties -run