如果你只做自己能力范围之内的事情,就永远没法进步。 -- 功夫熊猫3
最近的工作生活,越来越感觉自己要做更多超过自己能力范围之内的事情。毕业之后,就进入一家20来人的公司,自己都没想,这一做就是快五年。
人生有多少个五年啊,程序员的职业生涯又有多少个五年。离开了公司,嗖的一下到了深圳做起了外包。一开始的时候,内心是挺抵触外包的,内心总没个根,就像是人在他乡,内心总是空虚的。
互联网公司发展日新月异,我接触的,要学的也越来越多,有时候不是你想学的,但是工作需要!!!加油吧,大数据,是我自己选的,就算有个大坑,那也得跳啊 ; -)
Goal: Oozie的安装与部署
How:
a.解压Oozie
tar -zxf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C /opt/module/cdh/
b.Hadoop配置文件修改,完成后scp到其他机器节点
<!-- OOZIE -->
<property>
<name>hadoop.proxyuser.feng.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.feng.groups</name>
<value>*</value>
</property>
以上是我本机的配置,feng是hadoop用户名。
以下是官网教程:Oozie-quick start
c.配置JobHistoryServer服务(必须)
<!-- 配置 MapReduce JobHistory Server 地址 ,默认端口10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop129:10020</value>
</property>
<!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop129:19888</value>
</property>
注意注意:以上配置完成,scp到所有集群节点上!!!
d.解压hadooplibs
tar -zxf oozie-hadooplibs-4.0.0-cdh5.3.6.tar.gz -C /opt/module/cdh/
e.Oozie根目录下创建libext目录
mkdir libext
f.拷贝hadooplibs、mysql驱动、ext-2.2.zip到libext目录下
[feng@hadoop129 oozie-4.0.0-cdh5.3.6]$ cp -a /opt/module/cdh/oozie-4.0.0-cdh5.3.6/hadooplibs/hadooplib-2.5.0-cdh5.3.6.oozie-4.0.0-cdh5.3.6/* libext/
[feng@hadoop129 lib]$ cp -a mysql-connector-java-5.1.27-bin.jar /opt/module/oozie-4.0.0-cdh5.3.6/libext/
[feng@hadoop129 software]$ cp -a ext-2.2.zip /opt/module/oozie-4.0.0-cdh5.3.6/libext/
g.修改Oozie配置文件oozie-site.xml
修改驱动:
<property>
<name>oozie.service.JPAService.jdbc.driver</name>
<value>com.mysql.jdbc.Driver</value>
<description>
JDBC driver class.
</description>
</property>
Mysql的oozie数据库的配置(请配置成自己的数据库地址):
<property>
<name>oozie.service.JPAService.jdbc.url</name>
<value>jdbc:mysql://hadoop129:3306/oozie</value>
<description>
JDBC URL.
</description>
</property>
配置用户名密码,记得替换value值:
<property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>Mysq用户名</value>
<description>
DB user name.
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>你的Mysql密码</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>
Oozie引用Hadoop配置
<property>
<name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
<value>*=/opt/module/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop</value>
<description>
Comma separated AUTHORITY=HADOOP_CONF_DIR, where AUTHORITY is the HOST:PORT of
the Hadoop service (JobTracker, HDFS). The wildcard '*' configuration is
used when there is no exact match for an authority. The HADOOP_CONF_DIR contains
the relevant Hadoop *-site.xml files. If the path is relative is looked within
the Oozie configuration directory; though the path can be absolute (i.e. to point
to Hadoop client conf/ directories in the local filesystem.
</description>
</property>
在Mysql中创建oozie数据库:
create database oozie;
上传Oozie目录下的yarn.tar.gz文件到HDFS:
[feng@hadoop129 oozie-4.0.0-cdh5.3.6]$ bin/oozie-setup.sh sharelib create -fs hdfs://hadoop129:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz
执行该语句会打印lib的hdfs path:
上传之后到该目录下查看是否已经上传成功了,如图:
创建Oozie DB:
$ bin/oozie-setup.sh db create -run -sqlfile oozie.sql
出现如下效果图,则创建成功:
打包项目,生成war包:
$ bin/oozie-setup.sh prepare-war
起动Oozie服务:
# 后台进程方式
bin/oozied.sh start
# 前台进程方式
bin/oozied.sh run
检查logs/oozie.log日志或者使用如下命令,确认oozie是否正常起动:
$ bin/oozie admin -oozie http://localhost:11000/oozie -status
Done:
正常情况下应该打印:
System mode: NORMAL
浏览器访问:http://hadoop129:11000/oozie