Hadoop-1.2.1 Eclipse开发环境配置

本文介绍如何在Hadoop 1.2.1版本环境下自行编译并配置Eclipse插件,包括解决编译过程中的依赖问题及修改相关配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


   记得早在Hadoop 0.20.2版本的时候,在$HADOOP_HOME/contrib/eclipse-plugin目录下直接就有一个hadoop-eclipse-luging-0.20.2.jar的包,我们只需要将这个包放到$ECLIPSE_HOME/plugins目录下,然后重启Eclipse即可。


       前一段换成了Hadoop 1.2.1版本,在搭建Eclipse环境的时候,发现没有这个包,但是在$HADOOP_HOME/src/contrib/eclipse-plugin目录下有这个jar包的源代码,从网上查询后才知道需要自己使用Ant来编译生成hadoop-eclipse-luging-1.2.1.jar。于是就搭建了Ant环境,通过查看$HADOOP_HOME/src/contrib/eclipse-plugin/build.xml知道,编译时需要传入几个参数,那么编译的命令如下:

[plain]  view plain copy
  1. ant -Declipse.home=/path/to/eclipse -Dversion=1.2.1 -Dcommons-cli.version=1.2  


        但是在运行的过程中,却报了好多类和包找不到的错误。在网上查询答案时,发现大家的做法基本都是对build.xml文件做较多的修改,而且按照他们的办法我也没有运行成功。经过自己的摸索,加上一定的运气,我找到了如下的方法:

       1、在Hadoop根目录下也有一个build.xml,在此目录下执行命令:ant。Hadoop有篇Wiki上说是要在源码包的src目录下运行ant,在生成其他东西的过程中也会生成我们需要的hadoop-eclipse-luging-1.2.1.jar。我没有下载Hadoop的源码包,而是直接在Release包中运行的。(这一步的目的是为之后的编译配置环境,这一步会执行失败,但是不用管,我们需要的环境已经有了)

       2、$HADOOP_HOME/src/contrib/eclipse-plugin/build.xml中还是有个错误需要修改:

[plain]  view plain copy
  1. <copy file="${hadoop.root}/<span style="color:#ff0000">build</span>/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>   

       找到上面这行代码,将这行代码改为:

[plain]  view plain copy
  1. <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>  

       我们去掉了“build”,这可能是新版本的jar包位置发生改变,但是代码没有做相应的修改。

       经过测试,发现只做以上修改,只是能够生成jar包,但是放入Eclipse下之后发现不能用。网上搜索到的解决办法如下:

       在上面代码后加入如下的代码:

[plain]  view plain copy
  1. <copy file="${hadoop.root}/lib/commons-configuration-${commons-configuration.version}.jar"  todir="${build.dir}/lib" verbose="true"/>  
  2. <copy file="${hadoop.root}/lib/commons-httpclient-${commons-httpclient.version}.jar"  todir="${build.dir}/lib" verbose="true"/>  
  3. <copy file="${hadoop.root}/lib/commons-lang-${commons-lang.version}.jar"  todir="${build.dir}/lib" verbose="true"/>  
  4. <copy file="${hadoop.root}/lib/jackson-core-asl-${jackson.version}.jar"  todir="${build.dir}/lib" verbose="true"/>  
  5. <copy file="${hadoop.root}/lib/jackson-mapper-asl-${jackson.version}.jar"  todir="${build.dir}/lib" verbose="true"/>  
并在META-INF目录下的MANIFEST.MF文件中修改如下信息:

Bundle-ClassPath: classes/,
 lib/hadoop-core.jar
修改为:

Bundle-ClassPath: classes/,
 lib/hadoop-core.jar,
 lib/commons-cli-1.2.jar,
 lib/commons-configuration-1.6.jar,
 lib/jackson-core-asl-1.8.8.jar,
 lib/commons-httpclient-3.0.1.jar,
 lib/jackson-mapper-asl-1.8.8.jar,
 lib/commons-lang-2.4.jar
必须在这里修改,亲测在生成后的jar包中修改无效,貌似会破坏jar包的校验值。

       3、修改完文件后保存退出,然后在$HADOOP_HOME/src/contrib/eclipse-plugin目录下执行:

[plain]  view plain copy
  1. ant -Declipse.home=/path/to/eclipse -Dversion=1.2.1 -Dcommons-cli.version=1.2  

然后就可以在$HADOOP_HOME/build/contrib/eclipse-plugin目录下看到hadoop-eclipse-luging-1.2.1.jar,将这个jar包放入$ECLIPSE_HOME/plugins,重启Eclipse即可创建MapReduce Project。



3)  配置Hadoop插件

将下载的hadoop-eclipse-plugin-2.2.0.jar文件放到Eclipse的dropins目录下,重启Eclipse即可看到该插件已生效。

通过Open Perspective菜单打开Map Reduce视图,如下:


选中大象图标,右键点击Edit Hadoop Location编辑Hadoop配置信息:


填写正确的Map/Reduce和HDFS信息。(具体根据您的配置而定)

 

4)  新建简单Mapreduce项目

通过向导新建一个Map/Reduce项目。在此过程中,请配置Hadoop的安装路径。


5)  通过Eclipse访问DFS

打开Resource视图,即可看到DFS:


此时,你可对DFS进行一些操作,比如上传本地文件到HDFS等等,如下图:

 

至此,Hadoop的开发环境大致配置完成,下一节我们将看到如何写一个简单的MapReduce程序并放到Hadoop集群上运行。


附上我自己本地环境的几个配置文件内容供大家参考,有错之处敬请指正,谢谢!

1)Core-stie.xml

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
  </property>
</configuration>

2)hdfs-site.xml

 <configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/var/data/hadoop/hdfs/nn</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:/var/data/hadoop/hdfs/snn</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:/var/data/hadoop/hdfs/snn</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/var/data/hadoop/hdfs/dn</value>
</property>
</configuration>

3)Mapred-site.xml

<configuration>
  <property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>


4)yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties --> 
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值