编译hadoop1.2.1 eclipse插件

目录说明

      在编译之前,我们需要先下载后hadoop 1.2.1的源码文件,并解压到合适的位置。在此我是把hadoop直接放到D盘根目录,另外由于在编译的工程中需要知道eclipse的路径,所以首先计划目录结构如下如下:
Eclipse: D:\DTools\eclipse
Hadoop: D:\hadoop-1.2.1

Step1 导入 Hadoop-eclipse 插件工程

1. 下载hadoop-1.2.1.tar.gz,并解压缩到 D盘根目录下
2. 在 Eclipse 中选择 File—>Import—>General/Existing Projects into Workspace 导入Hadoop的Eclipse插件项目。选择路径为D:\hadoop-1.2.1\src\contrib\eclipse-plugin,然后点击Finish.其默认的项目名称是 MapReduceTools。




Step2 导入所需 jar 包


在项目 MapReduceTools 中新建 lib 目录,将 hadoop-1.2.1 下的 hadoop-core-1.2.1.jar(重命名为 hadoop-core.jar),及其 lib 目录下的 commons-cli-1.2.jar、commons-lang-2.4.jar、commons-configuration-1.6.jar、jackson-mapper-asl-1.8.8.jar、jackson-core-asl-1.8.8.jar、commons-httpclient-3.0.1.jar 拷贝到该目录。
 


Step3 修改build-contrib.xml


将D:\hadoop-1.2.1\src\contrib目录下的build-contrib.xml文件拷贝到项目目录中,注意:build-contrib.xml文件以eclipse-plugin是在同一级目录中,拷贝完成以后修改build-contrib.xml文件。修改的内容如下。
  1. <!-- 修改 hadoop 存放目录   -->
  2. <property name="hadoop.root" location="D:/hadoop-1.2.1"/>
  3. <!-- 添加 eclipse 存放目录  -->
  4. <property name="eclipse.home" location="D:/DTools/eclipse" />
  5. <!-- 添加 hadoop 版本   -->
  6. <property name="version" value="1.2.1"/>
复制代码


Step4 修改build.xml

在build.xml 文件中,一共需要修改三个部分,四个地方的内容。具体如下面代码所示。
  1. <!-- 1.修改 build-contrib.xml的位置,去掉"../" -->
  2. <import file="build-contrib.xml"/>

  3. <!-- 2.添加如下,否则提示"软件包 org.apache.hadoop.fs 不存在" -->
  4. <path id="hadoop-jars">
  5.   <fileset dir="${hadoop.root}/">
  6.     <include name="hadoop-*.jar"/>
  7.   </fileset>
  8. </path>

  9.   <path id="classpath">
  10.     <pathelement location="${build.classes}"/>
  11.     <pathelement location="${hadoop.root}/build/classes"/>
  12.     <path refid="eclipse-sdk-jars"/>
  13.           <path refid="hadoop-jars"/> <!--这行为添加的内容-->
  14.   </path>

  15. <!-- 3.修改并添加 jar 包拷贝,有些内容已存在,只添加不存在内容   -->
  16.   <target name="jar" depends="compile" unless="skip.contrib">
  17.     <mkdir dir="${build.dir}/lib"/>
  18.     <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
  19.           <copy file="${hadoop.root}/lib/commons-cli-1.2.jar" todir="${build.dir}/lib" verbose="true"/>
  20.           <copy file="${hadoop.root}/lib/commons-lang-2.4.jar" todir="${build.dir}/lib" verbose="true"/>
  21.           <copy file="${hadoop.root}/lib/commons-configuration-1.6.jar" todir="${build.dir}/lib" verbose="true"/>
  22.           <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/>
  23.           <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/>
  24.           <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib" verbose="true"/>
  25.     <jar
  26.       jarfile="${build.dir}/hadoop-${name}-${version}.jar"
  27.       manifest="${root}/META-INF/MANIFEST.MF">
  28.       <fileset dir="${build.dir}" includes="classes/ lib/"/>
  29.       <fileset dir="${root}" includes="resources/ plugin.xml"/>
  30.     </jar>
  31.   </target>
复制代码



Step5 修改MANIFEST.MF
在Bundle-ClassPath添加下面的内容。
  1. Bundle-ClassPath: classes/,
  2. lib/hadoop-core.jar,
  3. lib/commons-cli-1.2.jar,
  4. lib/commons-httpclient-3.0.1.jar,
  5. lib/jackson-core-asl-1.8.8.jar,
  6. lib/jackson-mapper-asl-1.8.8.jar,
  7. lib/commons-configuration-1.6.jar,
  8. lib/commons-lang-2.4.jar
复制代码



Step6 Ant 编译 1. 右键 MapReduceTools 工程,Properties—>Builders—>New—>Ant Builder
2. 修改New_Builder编辑界面中的内容
Name (见名知意): plugin_Builder
Buildfile (build.xml的位置): D:\hadoop-1.2.1\src\contrib\eclipse-plugin\build.xml
3. 修改完成保存
4. 点击Project—>Build Project进行生成
点击Project—>Build Project开始进行生成,这时候我们会看到控制台输出一堆相关的编译信息,编译成功会看到在控制台输出 BUILD SUCCESSFUL 。编译结果在 d:\hadoop-1.2.1\build\contrib\eclipse-plugin 目录下。
 



Step6 查看编译成果

编译结果在 d:\hadoop-1.2.1\build\contrib\eclipse-plugin 目录下。我们可以看到在目录下生成了hadoop-eclipse-plugin-1.2.1.jar,这时如果我们需要安装插件到eclipse的话就需要将 hadoop-eclipse-plugin-1.2.1.jar 放入 到eclipse的plugins 目录下,重启 eclipse即可。

 


最后如果在使用eclipse调试程序的时候不幸遇到0700错误的话,
Exception in thread "main"java.io.IOException:Failed to set permissions ofpath:\tmp\hadoop-ysc\mapred\staging\ysc-2036315919\.staging to 0700
请参照 http://f.dataguru.cn/thread-225329-1-1.html 的帖子的解决方法。
我个人也就参照这个帖子解决的这个问题,在此表示感谢。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值