[置顶] 【Apache Hadoop系列】hadoop1.0.4 eclipse插件编译

一、所需工具
     eclipse-java-juno-SR1-win32.zip
     jdk-6u37-linux-x64.bin
     apache-ant-1.8.4-bin.zip
      hadoop-1.0.4
二、Ant安装
     将Ant解压放在合适目录:比如D盘。
     配置Ant环境变量,在Path中添加:F:\hadoop\ant\bin。
     控制台中输入echo %PAHT% 使环境变量生效。(没必要重启)
三、编译hadoop-eclipse-plugins-1.0.4.jar
     1、解压hadoop
           目录为     F:\hadoop\hadoop-1.0.4
     2、 进入F:\hadoop\hadoop-1.0.4\src\contrib目录。将build-contrib.xml复制到 F:\hadoop\hadoop-1.0.4\src\contrib\eclipse-plugin目录下。
     3、修改build-contrib.xml文件
           将hadoop.root改为hadoop解压目录
           <property name=”hadoop.root” location=”F:/hadoop/hadoop-1.0.4″/>
           在下面添加如下两行:Eclipse安装根目录,和hadoop版本
           <property name=”eclipse.home” location=”E:/software/deploymentTool/eclipse”/>
           <property name=”version” value=”1.0.4″/>
           具体位置需要改为你的,注意location里的斜杠方向
    4、修改build.xml:找到<import file="../build-contrib.xml"/>,改为<import file="build-contrib.xml"/>
    5、在F:\hadoop\hadoop-1.0.4\src\contrib\eclipse-plugin 目录下创建lib目录,并将以下jar包复制进来:
          commons-configuration-1.6.jar、commons-httpclient-3.0.1.jar、commons-lang-2.4.jar、jackson-core-asl-1.8.8.jar、
          jackson-mapper-asl-1.8.8.jar
    6、在F:\hadoop\hadoop-1.0.4下创建build文件夹,将hadoop-core-1.0.4.jar复制进来
 最近因为windows权限问题搞了好久的插件问题,像0700BUG权限认证问题。
ERROR security.UserGroupInformation:PriviledgedActionException as:admin cause:java.io.IOException:Failed to set permissions of path:\home\hadoop\hadoop-1.0.4\data\data\mapred\staging\admin1107758487\.staging to 0700
	Execption in threa "main" java.io.IOException:Failed to set permissions of path:\home\hadoop\hadoop-1.0.4\data\data\mapred\staging\admin1107758487\.staging to 0700
 	at org.apache.hadoop.fs.FileUtil.checkRetrunVlues(FileUtil.java:682)
	at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java.655)

这边要解决0007问题,hadoop-core-1.0.4.jar要覆盖掉里面的FileUtil的class文件,再打包一个,这里提供一个我的解决0007问题的hadoop-core-1.0.4.jar 包。先把之前的hadoop-core-1.0.4.jar修改为hadoop-core-1.0.4.jar_back,然后再把我这边提供的hadoop-core-1.0.4.jar放到hadoop目录下,然后拷贝这个hadoop-core-1.0.4.jar进build的目录。
  
下载地址:解决0700的 eclipse 插件 http://download.csdn.net/detail/weijonathan/4919830
解决0700的hadoop-core-1.0.4.jar
http://download.csdn.net/detail/weijonathan/4919824  
    7、在F:\hadoop\hadoop-1.0.4\build目录下创建F:\hadoop\hadoop-1.0.4\build\ivy\lib\Hadoop\common目录并将
          commons-cli- 1.2.jar复制到该目录下
    8、修改build.xml文件。目录:F:\hadoop\hadoop-1.0.4\src\contrib\eclipse-plugin
         1)、在<target name=”jar” depends=”compile” unless=”skip.contrib”>标签底下的
        
 <copy file=”${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar” todir=”${build.dir}/lib” verbose=”true”/>后面添加一下行
         <copy file=”${root}/lib/commons-configuration-1.6.jar” todir=”${build.dir}/lib” verbose=”true”/>

          <copy file=”${root}/lib/commons-httpclient-3.0.1.jar” todir=”${build.dir}/lib” verbose=”true”/>

          <copy file=”${root}/lib/commons-lang-2.4.jar” todir=”${build.dir}/lib” verbose=”true”/>

           <copy file=”${root}/lib/jackson-core-asl-1.8.8.jar” todir=”${build.dir}/lib” verbose=”true”/>

           <copy file=”${root}/lib/jackson-mapper-asl-1.8.8.jar” todir=”${build.dir}/lib” verbose=”true”/>

        2)、在<target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib">标签中的<javac>标签中添加属性includeantruntime     --防止编译过程中提示includeantruntime 属性未设置问题        
<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}"
     includeantruntime="on">
     <classpath refid="classpath"/>
    </javac>
  </target>

       3)、在build.xml中添加-防止问题 编译错误,提示“软件包org.apache.hadoop.fs 不存在“

<span style="white-space:pre">	</span><path id="hadoop-jars">
               <fileset dir="${hadoop.root}/">
                    <include name="hadoop-*.jar"/>
               </fileset> 
     <span style="white-space:pre">	</span></path>

        在<path id="classpath">中添加:<path refid="hadoop-jars"/>

4)、修改F:\hadoop\hadoop-1.0.4\src\contrib\eclipse-plugin\META-INF的MANIFEST.MF文件

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/commons-jackson-core-asl-1.8.8.jar,
  lib/commons-jackson-mapper-asl-1.8.8.jar


      5)、进入F:\hadoop\hadoop-1.0.4\src\contrib\eclipse-plugin目录下,执行ant命令就可以了!编译结果放在F:\hadoop\hadoop-1.0.4\build\contrib\eclipse-plugin目录下。

四、eclipse hadoop插件安装

       将编译好的eclipse插件放入eclipse的dropins目录中,重启eclipse就OK了!

五、 配置eclipse插件。

        1、打开eclipse,打开map/Reduce Locations

        2、右键New Hadoop Location...,输入Location Name(这个可以随意输入),修改Map/Reduce Master和DFS Master

             User name设置你启动hadoop的名称。

       3、点到Advanced parameters

            修改hadoop.tmp.dir修改为你hadoop集群中设置的目录。

            修改 dfs.permissions.supergroup为hadoop,hadoop

            修改dfs.replication 为你hdfs-site.xml文件中配置的值

       4、重启eclipse,之后你会发现其他参数eclipse自动帮你联网加载上去了!


你可能感兴趣的:(eclipse,hadoop,eclipse插件)