一、准备工作:
 
1、安装JDK

JDK6,JDK7都可以。这里以jdk-7u40-windows-x64.exe为例。
 
安装完成后要设置环境变量。
在Path变量的变量值后添加:【;C:\Program Files\Java\jdk1.7.0_40\bin】(JDK安装目录下的bin目录,注意半角分号)
 
添加JAVA_HOME变量,变量值为【C:\Program Files\Java\jdk1.7.0_40】(JDK安装目录)
如果不设置好环境变量,ANT将无法运行
 
 
2、安装Ant
这里以apache-ant-1.9.2-bin.tar.gz为例。
 
将压缩包解压到D盘根目录下。(其他目录也可以,不过要更改后面文件和命令中的参数)
 
 
3、解压Hadoop
这里以hadoop-1.2.1.tar.gz为例。
 
将压缩包解压到D盘根目录下。(其他目录也可以,不过要更改后面文件和命令中的参数)
 
 
4、安装Eclipse
这里以eclipse-standard-luna-M2-win32-x86_64.zip为例。
 
将压缩包解压到E:\GreenSoft\DevelopmentSoft中。(其他目录也可以,不过要更改后面文件和命令中的参数)
 
 
 
二、修改配置文件
1、进入D:\hadoop-1.2.1\src\contrib
 
 
2、备份build.properties和build.xml以及META-INF目录下的MANIFEST.MF共3个文件
 
 
3、修改build.properties配置文件
在最后添加Eclipse安装目录参数eclipse.home,hadoop版本参数version,jackson-core-asl.version,jackson-mapper-asl.version。jackson-core-asl-*.jar与jackson-mapper-asl-*.jar可在Hadoop安装目录的lib文件夹下找到。
注意:eclipse.home参数中路径写正斜杠/,而不是Windows默认的反斜杠\,否则有可能提示找不到文件。
output.. = bin/
bin.includes = META-INF/,\
               plugin.xml,\
               resources/,\
               classes/,\
               classes/,\
               lib/
 
#需定义的参数
eclipse.home=E:/GreenSoft/DevelopmentSoft/eclipse
version=1.2.1
jackson-core-asl.version=1.8.8
jackson-mapper-asl.version=1.8.8

 
 
4、修改build.xml配置文件
因为没有编译过整个Hadoop项目,所以Hadoop安装目录下的build目录中没有所需的jar文件。因此要手工修改编译所涉及的jar文件为Hadoop安装目录及其lib子目录下中的一共7个jar文件
(1)、设置elipse-sdk-jar path中也包含hadoop安装目录的jar文件。
  <path id="eclipse-sdk-jars">
    <fileset dir="${eclipse.home}/plugins/">
      <include name="org.eclipse.ui*.jar"/>
      <include name="org.eclipse.jdt*.jar"/>
      <include name="org.eclipse.core*.jar"/>
      <include name="org.eclipse.equinox*.jar"/>
      <include name="org.eclipse.debug*.jar"/>
      <include name="org.eclipse.osgi*.jar"/>
      <include name="org.eclipse.swt*.jar"/>
      <include name="org.eclipse.jface*.jar"/>
 
      <include name="org.eclipse.team.cvs.ssh2*.jar"/>
      <include name="com.jcraft.jsch*.jar"/>
    </fileset>
 
    <!-- 指定使用$HADOOP_HOME总的jar文件 -->
    <fileset dir="${hadoop.root}">
      <include name="hadoop-*.jar"/>
    </fileset>
 
  </path>

 

 
(2)、修改copy的jar文件路径
 

  <!-- Override jar target to specify manifest -->
  <target name="jar" depends="compile" unless="skip.contrib">
    <mkdir dir="${build.dir}/lib"/>
 
    <!-- 设置正确的所有jar文件复制 -->
      <!--
    <copy file="${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
    <copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
    -->
      <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"  todir="${build.dir}/lib" verbose="true"/>
     <copy file="${hadoop.root}/lib/commons-configuration-${commons-configuration.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
      <copy file="${hadoop.root}/lib/commons-httpclient-${commons-httpclient.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
      <copy file="${hadoop.root}/lib/commons-lang-${commons-lang.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
      <copy file="${hadoop.root}/lib/jackson-core-asl-${jackson-core-asl.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
      <copy file="${hadoop.root}/lib/jackson-mapper-asl-${jackson-mapper-asl.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
    <jar
      jarfile="${build.dir}/hadoop-${name}-${version}.jar"
      manifest="${root}/META-INF/MANIFEST.MF">
      <fileset dir="${build.dir}" includes="classes/ lib/"/>
      <fileset dir="${root}" includes="resources/ plugin.xml"/>
    </jar>
  </target>

 
 
 
4、修改MANIFEST.MF配置文件。
修改CLASSPATH,注意CLASSPATH中的每项都要以空格+逗号分隔,没有空格会报错。
注意jar文件的版本号,这里以hadoop-1.2.1为例。

Eclipse-LazyStart: true
Bundle-ClassPath:
 classes/,
 lib/hadoop-core.jar,
 lib/commons-cli-1.2.jar,
 lib/commons-configuration-1.6.jar,
 lib/commons-httpclient-3.0.1.jar,
 lib/commons-lang-2.4.jar,
 lib/jackson-core-asl-1.8.8.jar,
 lib/jackson-mapper-asl-1.8.8.jar
Bundle-Vendor: Apache Hadoop

 
 
 
三、使用ANT编译插件
在Powershell中运行一下命令:

cd D:\hadoop-1.2.1\src\contrib\eclipse-plugin
D:\apache-ant-1.9.2\bin\ant.bat

(在CMD中运行的话需要注意可能要手工切换磁盘)
 
 
到此编译成功。
 
 
 
四、复制插件到Eclipse插件目录
编译生成的插件在D:\hadoop-1.2.1\build\contrib\eclipse-plugin(Hadoop安装目录的build\contrib\eclipse-plugin目录中)。
 
只需要将hadoop-eclipse-plugin-*.jar文件拷贝到Eclipse安装目录的plugins文件夹中即可。
 
重启Eclipse就有Map/Reduce Perspective了。
 
 
参考资料:
Hadoop 1.2.1 eclipse plugin 编译 win7 集成 http://blog.csdn.net/reaper1022/article/details/11009797
hadoop-eclipse开发环境搭建及error: failure to login错误 http://blog.csdn.net/chengfei112233/article/details/7252404
MANIFEST.MF文件的Class-Path http://lost-alien.iteye.com/blog/646371
 
 

Windows平台上使用ANT编译Hadoop Eclipse Plugin的更多相关文章

  1. 第四章.使用ant编译hadoop eclipse插件

    从hadoop 0.20.203以后,hadoop的发布包里,不再对eclipse插件进行jar包发布,而是给出了打包的代码,需要各位开发人员自己进行打包和设置.我们打的包必须跟自己使用的hadoop ...

  2. 使用Ant编译Hadoop工程报错

    在win7用Ant编译hadoop工程的时候,遇到了一个报错,如下: org.eclipse.core.runtime.CoreException: D:\workspace\hadoop-1.1.2 ...

  3. 在windows平台上构建自己的PHP(php5.3+)

    这是一篇翻译的文章,原文参见:https://wiki.php.net/internals/windows/stepbystepbuild 顺便提一句,wiki.php.net有很多精彩的内容,想深入 ...

  4. 在Windows平台上安装Node.js及NPM模块管理

    1. 下载Node.js官方Windows版程序:http://nodejs.org/#download    从0.6.1开始,Node.js在Windows平台上提供了两种安装方式,一是.MSI安 ...

  5. Windbg是windows平台上强大的调试器

    基础调试命令 - .dump/.dumpcap/.writemem/!runaway Windbg是windows平台上强大的调试器,它相对于其他常见的IDE集成的调试器有几个重要的优势, Windb ...

  6. 分享一些 Windows 平台上的神器

    下面分享一些 Windows 平台上日常开发使用的软件,有些软件我自认为是神器,可以大大提高效率. 编辑器类软件 IntelliJ IDEA IntelliJ IDEA 内部集成 Java 开发环境, ...

  7. MySQL 在Windows平台上的安装及实例多开

    MySQL在Windows平台上的安装及实例多开   by:授客 QQ:1033553122 测试环境 Win7 64 mysql-5.7.20-winx64.zip 下载地址: https://cd ...

  8. 如何在微软Windows平台上打造出你的Linux开发环境(转载)

    如何在微软Windows平台上打造出你的Linux开发环境 投递人 itwriter 发布于 2013-12-10 11:18 评论(1) 有348人阅读  原文链接  [收藏]  « » 英文原文: ...

  9. (转)在Windows平台上安装Node.js及NPM模块管理

    本文转载自:http://www.cnblogs.com/seanlv/archive/2011/11/22/2258716.html 之前9月份的时候我写了一篇关于如何在Windows平台上手工管理 ...

随机推荐

  1. 【剑指Offer】11、二进制中1的个数

      题目描述:   输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示.   解题思路:   本题有以下两个解决方案:   (1)依次判断每一位.判断的方法是先与1相与,为1则说明该位为1 ...

  2. NOIP2016 DAY2 T2蚯蚓

    传送门 Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神 ...

  3. 06.系统编程-4.多线程和GIL

    为什么有人会说 Python? 多线程是鸡肋?知乎上有人提出这样一个问题,在我们常识中,多进程.多线程都是通过并发的方式充分利用硬件资源提高程序的运行效率,怎么在 Python 中反而成了鸡肋? 有同 ...

  4. js中二维数组的创建方法 2017-04-04 14:50 120人阅读 评论(0) 收藏

    法一:var myarr=[[0,1,2],[1,2,3]]; 将[0,1,2]看做原来的0,将[1,2,3]看做原来的1,而二者又分别为子数组 如myarr[0][1]=1,myarr[1][1]= ...

  5. 阿里云 LAMP 使用基础

    产品亮点 1.基于阿里云CentOS7.2镜像 2.采用yum方式安装,软件安装均为默认目录,未作任何修改. 3.采用经典LAMP组合,拓展性强,资源丰富,解决方案较多 4.附带PhpMyadmin和 ...

  6. hdu 4612 双联通缩点+树形dp

    #pragma comment(linker,"/STACK:102400000,102400000")//总是爆栈加上这个就么么哒了 #include<stdio.h> ...

  7. 数位dp无前导零

    题目链接:http://    www.lydsy.com/JudgeOnline/problem.php?id=1026 #include <iostream> #include < ...

  8. 05springMVC数据格式化

    数据格式化简介 内建的格式转换器 使用内建格式转换器示例 字段级别的解析/格式化 集成到Spring Web MVC环境 1      数据格式化简介 对属性对象的输入/输出进行格式化,其实是属于“类 ...

  9. C#--线程存储数据的机制

    面试题:线程存储数据的机制 Local variables 局部变量 临时存储 栈 Instance class fields 对象存储 堆 (堆的大小只有硬件的限制) Static local va ...

  10. [bzoj2124]等差子序列_线段树_hash

    等差子序列 bzoj-2124 题目大意:给定一个1~n的排列,问是否存在3个及以上的位置上的数构成连续的等差子序列. 注释:$1\le n\le 10^4$. 想法:这题就相当于是否存在3个数i,j ...