前几篇博文介绍了如何安装Hadoop2.7.2分布式环境,如何启动Hadoop2.7.2以及如何执行hadoop的官方小例子wordcount,今天将着重介绍如何搭建hadoop2.7.2的开发环境,为后期做mapreduce的开发做准备。
在搭建开发环境之前,首先选择开发工具,就是大家都很熟悉的Eclipse,Eclipse提供了hadoop的插件,我们通过这个插件,就可以在eclipse中编写mapreduce。但是,这个插件可能会随着hadoop的版本升级或者eclipse的版本升级,而需要相应的去进行编译。所以,在我们开发之前,学会编译这个eclipse的hadoop插件至关重要,今天我将介绍如何编译这个插件。
1.首先通过sourcetree获取hadoop2x-eclipse-plugin插件。
插件地址在github上:https://github.com/winghc/hadoop2x-eclipse-plugin.git
如下图:克隆上面地址到本地目录即可
2.将克隆后的文件导入到idea中,如下图:
然后将idea中的ant配置好。
接着修改\hadoop2x-eclipse-plugin\src\contrib\eclipse-plugin\build.xml文件
找到<target name="jar" depends="compile" unless="skip.contrib">标签,然后添加以下内容
<copy file="${hadoop.home}/share/hadoop/common/lib/htrace-core-${htrace.version}-incubating.jar" todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.home}/share/hadoop/common/lib/servlet-api-${servlet-api.version}.jar" todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.home}/share/hadoop/common/lib/commons-io-${commons-io.version}.jar" todir="${build.dir}/lib" verbose="true"/>
以上这些jar包在编译hadoop2.7.2 eclipse插件的时候需要用到,如果不添加就会报错,所以,我们在ant编译之前先添加进来。
然后再找到<jar arfile="${build.dir}/hadoop-${name}-${hadoop.version}.jar" manifest="${root}/META-INF/MANIFEST.MF">标签,把刚刚添加的包,在ant构建的时候写到mainfest.mf文件的Bundle-ClassPath中:
lib/servlet-api-${servlet-api.version}.jar,
lib/commons-io-${commons-io.version}.jar,
lib/htrace-core-${htrace.version}-incubating.jar
再修改\hadoop2x-eclipse-plugin\src\ivy\libraries.properties文件,这个文件配置了ant构建需要用到各个jar包的版本,以及构建hadoop的版本,由于这个插件工程师编译hadoop2.6.0的,所以我们需要修改以下配置,其实在ant构建的时候,会选择本地hadoop2.7.2目录中的jar包版本(\hadoop-2.7.2\share\hadoop\common),所以只要将版本号改成对应的版本号即可如下图:
最后修改\hadoop2x-eclipse-plugin\ivy\libraries.properties文件,文件的的版本如上图版本修改一样,但是还有一个版本需要修改的就是
htrace.version的版本要改成3.1.0,htrace.version=3.1.0
然后cd到D:\OpenSources\hadoop2x-eclipse-plugin\src\contrib\eclipse-plugin目录
执行以下命令:
ant jar -Dversion=2.7.2 -Declipse.home=E:\eclipse-jee-mars-2-win32-x86_64\eclipse -Dhadoop.home=E:\hadoop-2.7.2
解释下这个命令:-Dversion是指这个插件的版本,Declipse.home是指eclipse的安装目录,-Dhadoop.home指本地文件中hadoop-2.7.2的安装目录。
命令执行成功之后就可以在\hadoop2x-eclipse-plugin\build\contrib\eclipse-plugin目录下面找到
hadoop-eclipse-plugin-2.7.2.jar 包,这个包就是编译好的eclipse hadoop2.7.2插件,把这个插件放到eclipse安装目录的plugins目录下,我们就可以进入eclipse然后找到一个叫mapreduce的视图,就可以开始尝试编写mapreduce程序了,关于如何在eclipse里面来进行这个插件的使用,下一章节我们再继续。