之前在Centos配置eclipse的Hadoop插件时,在最后一步使用ant命令会卡在运行过程中,或者报错,参考了网上的的编译过程之后,最后终于也是成功配置好了,这里是参考的链接地址http://kangfoo.u.qiniudn.com/article/2013/12/hadoop-eclipse-plugin-1.2.1/,以下内容是根据原文作者的步骤,加上自己在安装过程中的一些补充。
eclipse的hadoop插件作用
(1)在eclipse中提供一个HDFS文件系统的目录树,可以直接进行创建,删除,上传文件等操作
(2)在eclipse进行开发代码会更加方便
安装前准备
1.配置java环境
2.下载并配置ant环境
添加环境变量
export ANT_HOME=/usr/local/apache-ant-1.8.0
export PATH=$ANT_HOME/bin:$PATH
3.安装好eclipse
4.在使用ant命令时,需要保证能连接的网络
安装步骤
相对路径hadoop-1.2.1/...表示Hadoop安装后的目录,而我安装Hadoop放在/home/hadoop/hadoop-1.2.1这个路径中,具体路径自身根据安装时目录而定。
1.修改build-contrib.xml
此文件在/home/hadoop/hadoop-1.2.1/src/contrib路径下面
修改hadoop.root值为实际的hadoop根目录
<property name="hadoop.root" location="/home/hadoop/hadoop-1.2.1"/>
添加eclipse依赖
<property name="eclipse.home" location="/home/hadoop/eclipse" />
设置版本号
<property name="version" value="1.2.1"/>
启动javac.deprecation(将value的值由off修改成on)
<property name="javac.deprecation" value="on"/>
ant 1.8+ 版本需要额外的设置javac includeantruntime=“on” 参数
<!-- ====================================================== -->
<!-- Compile a Hadoop contrib's files -->
<!-- ====================================================== -->
<target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib">
<echo message="contrib: ${name}"/>
<javac
encoding="${build.encoding}"
srcdir="${src.dir}"
includes="**/*.java"
destdir="${build.classes}"
debug="${javac.debug}"
deprecation="${javac.deprecation}"
includeantruntime="on">
<classpath refid="contrib-classpath"/>
</javac>
</target>
2.修改build-contrib.xml
此文件在/home/hadoop/hadoop-1.2.1/src/contrib/eclipse-plugin目录下
添加文件路径hadoop-jars
<path id="hadoop-jars">
<fileset dir="${hadoop.root}/">
<include name="hadoop-*.jar"/>
</fileset>
</path>
将hadoop-jars添加到classpath
<path id="classpath">
<pathelement location="${build.classes}"/>
<pathelement location="${hadoop.root}/build/classes"/>
<path refid="eclipse-sdk-jars"/>
<path refid="hadoop-jars"/>
</path>
添加或修改额外的jar依赖,找到<!-- Override jar target to specify manifest -->,
修改target中name为 jar 中的 copy file 的路径,具体如下:
<copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-cli-${commons-cli.version}.jar" tofile="${build.dir}/lib/commons-cli.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-configuration-1.6.jar" tofile="${build.dir}/lib/commons-configuration.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" tofile="${build.dir}/lib/commons-httpclient.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-lang-2.4.jar" tofile="${build.dir}/lib/commons-lang.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" tofile="${build.dir}/lib/jackson-core-asl.jar" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" tofile="${build.dir}/lib/jackson-mapper-asl.jar" verbose="true"/>
3.修改MANIFEST.MF
此文件在/home/hadoop/hadoop-1.2.1/src/contrib/eclipse-plugin/META-INF路径下
修改Bundle-ClassPath这一行
Bundle-ClassPath: classes/,lib/commons-cli.jar,lib/commons-httpclient.jar,lib/hadoop-core.jar,lib/jackson-mapper-asl.jar,lib/commons-configuration.jar,lib/commons-lang.jar,lib/jackson-core-asl.jar
4.
新建直接打包并部署jar到eclipse/plugin目录的target
修改文件build.xml,此文件在/home/hadoop/
hadoop-1.2.1
/src/contrib/eclipse-plugin路径下
添加target直接将编译的插件拷贝到eclipse插件目录
<target name="deploy" depends="jar" unless="skip.contrib">
<copy file="${build.dir}/hadoop-${name}-${version}.jar" todir="${eclipse.home}/plugins" verbose="true"/>
</target>
将ant默认target default=“java"改为default=“deploy”
<project default="deploy" name="eclipse-plugin">
5.通过ant工具编译
ant -f ./hadoop-1.2.1/src/contrib/eclipse-plugin/build.xml
6.配置eclipse
若虚拟机内存不够,需要修改eclipse目录下面的eclipse.ini文件,我修改后的文件如下:
--launcher.XXMaxPermSize
128m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=128m
-Xms40m
-Xmx256m
配置hadoop安装目录
打开eclipse,步骤Window->Preferences,左侧目录树中选择Hadoop Map/Reduce,在选项框中填/home/hadoop/hadoop-1.2.1
配置Map/Reduce Locations
步骤Window->Show View->Other,在弹出来的选项框中选择Map/Reduce Locations
在下方点选右键->New Hadoop Location
步骤Window->Show View->Other,在弹出来的选项框中选择Map/Reduce Locations
在下方点选右键->New Hadoop Location