hadoop1.0.4 eclipse插件编译

论坛 期权论坛 脚本     
已经匿名di用户   2022-4-26 15:53   1087   0

转载自:http://blog.csdn.net/weijonathan/article/details/8282661


一、所需工具

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权限认证问题。
[plain] view plain copy
  1. 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
  2. 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
  3. at org.apache.hadoop.fs.FileUtil.checkRetrunVlues(FileUtil.java:682)
  4. 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”>标签底下的
[plain] view plain copy
  1. <copy file=”${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar” todir=”${build.dir}/lib” verbose=”true”/>后面添加一下行
  2. <copy file=”${root}/lib/commons-configuration-1.6.jar” todir=”${build.dir}/lib” verbose=”true”/>
  3. <copy file=”${root}/lib/commons-httpclient-3.0.1.jar” todir=”${build.dir}/lib” verbose=”true”/>
  4. <copy file=”${root}/lib/commons-lang-2.4.jar” todir=”${build.dir}/lib” verbose=”true”/>
  5. <copy file=”${root}/lib/jackson-core-asl-1.8.8.jar” todir=”${build.dir}/lib” verbose=”true”/>
  6. <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 属性未设置问题
[html] view plain copy
  1. <target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib">
  2. <echo message="contrib: ${name}"/>
  3. <javac
  4. encoding="${build.encoding}"
  5. srcdir="${src.dir}"
  6. includes="**/*.java"
  7. destdir="${build.classes}"
  8. debug="${javac.debug}"
  9. includeantruntime="on">
  10. <classpath refid="classpath"/>
  11. </javac>
  12. </target>

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

[html] view plain copy
  1. <span style="white-space:pre"> </span><path id="hadoop-jars">
  2. <fileset dir="${hadoop.root}/">
  3. <include name="hadoop-*.jar"/>
  4. </fileset>
  5. <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文件

[plain] view plain copy
  1. Bundle-ClassPath: classes/,
  2. lib/hadoop-core.jar,
  3. lib/commons-cli-1.2.jar,
  4. lib/commons-configuration-1.6.jar,
  5. lib/commons-httpclient-3.0.1.jar,
  6. lib/commons-lang-2.4.jar,
  7. lib/commons-jackson-core-asl-1.8.8.jar,
  8. 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自动帮你联网加载上去了!


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP