1、编译oozie 环境条件: Unix box (tested on Mac OS X and Linux) Java JDK 1.6+ Maven 3.0.1+ Hadoop 0.20.2+ Pig 0.7+
注意 JDK commands (java, javac) must be in the command path. The Maven command (mvn) must be in the command path.
1.1、安装maven:将maven的源码包解压缩,将解压后的文件夹放置/opt/目录下,并将/opt/apache-maven-3.2.3/bin目录添加至用户的环境变量中
1.2、安装pig:将pigxx.tar.gz解压,将解压后的文件夹放在/opt/目录下,并将${PIG_HOME}/bin路径加入到用户的环境变量中 修改ooize根目录下的pom.xml文件: //更改jdk为系统所用的版本,1.8版本的jdk编译会出错 <javaVersion>1.7</javaVersion> <targetJavaVersion>1.7</targetJavaVersion>
//默认为2.3.0,改为2.5.0后,编译出错 <hadoop.version>2.3.0</hadoop.version>
1.3、执行oozie-4.0.1.tar.gz解压后bin目录下的mkdistro脚本 ./mkdistro.sh -DskipTests
编译成功后,执行第二步
2、安装Oozie 2.1 将oozie-4.0.1目录下的distro/target目录下的oozie-4.0.1-distro.tar.gz解压至/usr/local/目录下,并将其重命名为oozie(个人喜好,也可不用重命名)
2.2、/usr/local/oozie/目录下,解压share,example,client三个tar包,如下:
oozie-client-4.0.1.tar.gz(oozie的客户端,可通过它提交工作流任务)、oozie-examples.tar.gz(oozie的工作流事例程序)、oozie-sharelib-4.0.1.tar.gz
2.3、在HDFS文件系统中创建一个/user/hu的目录('hu'应改为oozie的使用者名称),并将oozie-sharelib-4.0.1.tar.gz解压后的share目录上传至HDFS中的/user/hu目录下; hu@master:/usr/local/hadoop/bin$ hadoop fs -mkdir /user/hu (创建/user/hu目录) hu@master:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /usr/local/oozie/share /user/hu (将share目录上传至/user/hu目录) hu@master:/usr/local/hadoop$ bin/hadoop dfs -ls /user/hu (列出HDFS中/user/hu目录下的文件,看是否上传成功)
2.4、在/usr/local/oozie目录下创建libext目录,将oozie-4.0.1/hadooplibs/target/oozie-
4.0.1-hadooplibs/oozie-4.0.1/hadooplibs/hadooplib-2.3.0.oozie-4.0.1目录下的所
有tar包copy至新建的libext目录 cp hadooplib-2.3.0.oozie-4.0.1/* /usr/local/oozie/libext/
2.5、将mysql-connector-java-5.1.27.jar(应对应自己的mysql版本)和ext2.2.zip拷贝至/usr/local/oozie/lib和/usr/local/oozie/libext目录下 2.6、 将ext2.2.0和hadoop的jar包打进新war包里,否则会启动会失败。可以检查下/usr/local/oozie/oozie-server/webapps/有没有 oozie.war,来验证是否成功
在/usr/local/oozie/bin下执行命令(这将会把/usr/locao/oozie/libext目录下的jar包打包为一个war文
件,该war文件存放在/usr/local/oozie/oozie-server/webapps目录下): ./oozie-setup.sh prepare-war
2.7、设置环境变量 编辑/etc/profile文件,添加如下: export OOZIE_HOME=/usr/local/oozie export CATALINA_HOME=/usr/local/oozie/oozie-server export PATH=${CATALINA_HOME}/bin:${OOZIE_HOME}/bin:$PATH export OOZIE_URL=http://localhost:11000 export OOZIE_CONFIG=/usr/local/oozie/conf
2.8、修改/usr/local/oozie/conf/oozie-site.xml文件:修改如下
<property> <name>oozie.db.schema.name</name> <value>oozie</value> <description> Oozie DataBase Name </description> </property> <property> <name>oozie.service.JPAService.create.db.schema</name> <value>false</value> <description> </description> </property> <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.db.schema.name}</value> <description> JDBC URL. </description> </property> <property> <name>oozie.service.JPAService.jdbc.username</name> <value>oozie</value> <description> DB user name. </description> </property> <property> <name>oozie.service.JPAService.jdbc.password</name> <value>oozie</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>
2.9、配置mysql数据库,并生成oozie数据库脚本文件(将会在/usr/local/oozie/bin目录下生成oozie.sql文件) mysql -u root -p (进入mysql命令行) create database oozie; (创建名称为oozie的数据库) grant all privileges on oozie.* to 'oozie'@'localhost' identified by 'oozie'; (设置oozie数据库的访问全选,创建用户名为oozie,密码为oozie的用户) grant all privileges on oozie.* to 'oozie'@'%' identified by 'oozie'; (设置oozie数据库的访问权限) FLUSH PRIVILEGES; 在/usr/local/oozie/bin目录下执行以下命令: ./ooziedb.sh create -sqlfile oozie.sql 接着执行如下命令,执行oozie数据库脚本文件,这将在oozie数据库中生成与oozie相关的数据表 ./oozie-setup.sh db create -run -sqlfile /usr/local/oozie/bin/oozie.sql
2.10、修改hadoop安装目录下的core-site.xml文件,hu为用户名,hu为hu用户所在的组(修改完之后,需要重启hadoop)
<property> <name>hadoop.proxyuser.hu.hosts</name> <value>192.168.168.101</value>(192.168.168.101应改为hadoop的主节点ip) </property> <property> <name>hadoop.proxyuser.hu.groups</name> <value>hu</value> </property>
2.11、修改/usr/local/oozie/conf/hadoop-conf/core-site.xml文件,添加如下:
<property> <name>yarn.resourcemanager.address</name> <value>192.168.168.101:8032</value>(应与hadoop的配置相同,同下) </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>192.168.168.101:8030</value> </property>
2.12、执行bin\oozie-start.sh,启动oozie
可以用如下命令,查看oozie的运行状态。正常的话,应该显示NORMAL ./oozie admin -oozie http://localhost:11000/oozie -status
如果启动还有错误可以查看/usr/local/oozie/logs/catalina.out 里面的错误日志
2.13、运行oozie的mapreduce示例程序 将实例程序上传至HDFS的/user/hu文件夹 bin/hadoop fs -copyFromLocal /usr/local/oozie/examples /user/hu
修改/usr/local/oozie/examples/apps/map-reduce/job.properties文件(yarn中已经没有
jobTracker,以下jobTracker填入yarn.resourcemanager.address的
值,oozie.wf.application.path即HDFS中oozie示例程序的路径) nameNode=hdfs://master:9000 jobTracker=master:8032 queueName=default examplesRoot=examples
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/map-reduce outputDir=map-reduce
在/usr/local/oozie/oozie-client-4.0.1/bin中调用oozie脚本,执行工作流 ./oozie job -oozie http://localhost:11000/oozie -config /usr/local/oozie/examples/apps/map-reduce/job.properties -run
注意:若此时报错:java.net.ConnectException: Connection refused,则表明oozie没有启动
指定Oozie Java节点的Hadoop属性 http://www./Linux/2014-06/103617.htm
Hadoop平台上Oozie调度系统的安装配置 http://www./Linux/2014-04/100382.htm
Oozie中运行mapreduce node-action时的常见异常解决方法 http://www./Linux/2014-02/96685.htm
Oozie web-console 时间本地化 http://www./Linux/2012-11/74797.htm
Hadoop Oozie学习笔记 使用Oozie,通过命令行运行example http://www./Linux/2012-08/67029.htm
Hadoop Oozie学习笔记 自定义安装和启动 http://www./Linux/2012-08/67028.htm
更多Hadoop相关信息见Hadoop 专题页面 http://www./topicnews.aspx?tid=13
|