Oozie安装包好小。。。。通过编译在线下载的
安全模式理解
离开安全模式方法
bin/Hadoop dfsadmin -safemode leave
问题导读:
1.怎样安装Oozie?
2.怎样配置任务流程?
3.spark 提交和spark on yarn 方式的区别是什么?
软件版本:
Oozie4.2.0,Hadoop2.6.0,Spark1.4.1,Hive0.14,Pig0.15.0,Maven3.2,JDK1.7,zookeeper3.4.6,HBase1.1.2,MySQL5.6
集群部署:
node1~4.centos.com node1~4 192.168.0.31~34 1G*4 内存 1核*4 虚拟机
node1:NameNode 、ResourceManager;
node2:SecondaryNameNode、Master、HMaster、HistoryServer、JobHistoryServer
node3:oozie-server(tomcat)、DataNode、NodeManager、HRegionServer、Worker、QuorumPeerMain
node4:DataNode、NodeManager、HRegionServer、Worker、Pig client、Hive Client、HiveServer2、QuorumPeerMain、mysql
- 编译Oozie4.2.0
1.1 编译环境准备
使用tomcat7,而不是tomcat6的下载地址:
1)下载压缩包oozie-4.2.0.tar.gz,并解压缩到/usr/local/oozie目录
2)修改pom.xml
/usr/local/oozie/oozie-4.2.0/distro/pom.xml
export MAVEN_HOME=/opt/maven
export PATH=$PATH:$MAVEN_HOME/bin
保存退出后执行命令:
[html] view plain copy
source /etc/profile
修改maven setting.xml, 使用开源中国的镜像,加快速度(该镜像不是很全,若发现某些库被屏蔽了建议修改mirrorOf项,这里不用关心)
[html] view plain copy
<mirror>
<id>nexus-osc</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
下载oozie的master(为4.3.0-SNAPSHOT源码,解压)
[html] view plain copy
cd ~/download
git https://github.com/apache/oozie.git
cd oozie
2.4)修改主目录中的pom.xml,有以下位置要改:
1.8
<property>
<name>hadoop.proxyuser.[USER].hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.[USER].groups</name>
<value>*</value>
</property>
其中,[USER]需要改为后面启动oozie tomcat的用户
不重启hadoop集群,而使配置生效
[Bash shell] 纯文本查看 复制代码
hdfs dfsadmin -refreshSuperUserGroupsConfiguration
yarn rmadmin -refreshSuperUserGroupsConfiguration
1.4 配置Oozie
(由于是在node3上部署oozie,所以把下面的压缩包拷贝到node3上)
1) 取得压缩包:
[Bash shell] 纯文本查看 复制代码
oozie-4.2.0/distro/target/oozie-4.2.0-distro.tar.gz
2) 解压缩:
[Bash shell] 纯文本查看 复制代码
tar -zxf oozie-4.2.0-distro.tar.gz
3)在oozie-4.2.0目录下新建libext目录,并把ext-2.2.zip 拷贝到该目录下;并拷贝hadoop相关jar包到该目录下
[Bash shell] 纯文本查看 复制代码
cp $HADOOP_HOME/share/hadoop//.jar libext/
cp $HADOOP_HOME/share/hadoop//lib/.jar libext/
把hadoop与tomcat冲突jar包去掉
[Bash shell] 纯文本查看 复制代码
mv servlet-api-2.5.jar servlet-api-2.5.jar.bak
mv jsp-api-2.1.jar jsp-api-2.1.jar.bak
mv jasper-compiler-5.5.23.jar jasper-compiler-5.5.23.jar.bak
mv jasper-runtime-5.5.23.jar jasper-runtime-5.5.23.jar.bak
拷贝mysql驱动到该目录下(使用mysql数据库,默认是derby)
[Bash shell] 纯文本查看 复制代码
?
1 scp mysql-connector-java-5.1.25-bin.jar node3:/usr/oozie/oozie-4.2.0/libext/
4)配置数据库连接,文件是conf/oozie-site.xml
[XML] 纯文本查看 复制代码
<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://master:3306/oozie?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>hadoop</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>hadoop</value>
</property>
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/usr/hadoop/hadoop-2.6.0/etc/hadoop</value>
</property>
最后一个配置,是需要配置的,不然后面运行调度的时候,任务会报File /user/root/share/lib does not exist 的错误
5)启动前的初始化
a. 打war包
bin/oozie-setup.sh prepare-war
b. 初始化数据库
bin/ooziedb.sh create -sqlfile oozie.sql -run
c. 修改oozie-4.2.0/oozie-server/conf/server.xml文件,注释掉下面的记录
<!--<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />-->
d. 上传jar包
bin/oozie-setup.sh sharelib create -fs hdfs://node1:8020
1.5 启动
bin/oozied.sh start
- 流程实例
数据为:bank.csv ,并已经上传到hdfs://node1:8020/user/root/bank.csv ,可以在http://zeppelin-project.org/docs/tutorial/tutorial.html页面下载该数据
(当执行Hive、Pig任务的时候需要把第一行数据删除)
默认所有操作用户都是hadoop,如果是其他用户,可能需要修改对应的目录
配置环境变量:export OOZIE_URL=http://node3:11000/oozie
2.1 MR任务流程
- job.properties :
[Plain Text] 纯文本查看 复制代码
oozie.wf.application.path=hdfs://node1:8020/user/root/workflow/mr_demo/wf
#Hadoop"R
jobTracker=node1:8032
#Hadoop"fs.default.name
nameNode=hdfs://node1:8020/
#Hadoop"mapr