设为首页 收藏本站
查看: 870|回复: 0

[经验分享] walter的hadoop学习笔记四 配置hadoop的eclipse开发环境

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-12-7 07:29:52 | 显示全部楼层 |阅读模式
 开发环境
操作系统:ubuntu12.04 
hadoop版本:hadoop-1.0.4.tar.gz 
Eclipse版本:最新的eclipse,源安装的,我也没注意是哪个版本。

 
 
Ubuntu 12.04环境中编译Hadoop-eclipse-plugin-1.0.4.jar包。
1、在Eclipse中选择File-->Import-->Existing Projects into Workspace导入已有项目,假设路径为:
$HADOOP_HOME/src/contrib/eclipse-plugin,其默认的项目名称是MapReduceTools。导入后因为找不到hadoop-core.jar包,所以项目上有红色感叹号,不用管它【后面lib包加入后会消失】
 
2、默认项目名称为MapReduceTools,然后在项目MapReduceTools中新建lib目录,先将hadoop下的hadoop-core-1.0.4.jar重命名为hadoop.core.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拷贝到该目录。
 
3、将$HADOOP_HOME/src/contrib/build-contrib.xml(也就是与eclipse-plugin包在同一级目录)拷贝到eclipse项目目录中,并修改build-contrib.xml,将属性hadoop.root,eclipse.home换为本机电脑上的存放目录。并修改当前使用的hadoop版本号。eg:
 

  <property name="hadoop.root" location="/home/hadoop/Downloads/hadoop-1.0.4"/>
  <property name="eclipse.home" location="/home/hadoop/Downloads/eclipse" />

  <property name="version" value="1.0.4"/>

 


4、修改build.xml

  <target name="jar" depends="compile" unless="skip.contrib">
    <mkdir dir="${build.dir}/lib"/>
    <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-cli-1.2.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-lang-2.4.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.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>

 

5、修改META-INF/MANIFEST.MF文件,添加lib目录下的jar包

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

 
6、右键选择项目-->Export,类型选择JAR file,把plugin.xml文件、classes目录、lib目录和resources目录选上,选择导出的jar目录,【导出时注意,要选择using exsiting manifest from workspace (也就是要选择刚配置上一步配置那个文件),而不要选择新创建manifest文件】,即可导出hadoop-eclipse-plugin-1.0.4.jar文件。此处我在导出时,hadoop-eclipse-plugin-1.0.4.jar中编译好的类文件并没有包含在classes目录中【其中并没有classes目录】,所以先创建一个classes目录,将已编译好的类文件剪切进classes目录。
 
7、经过以上几步,生成的hadoop-eclipse-plugin-1.0.4.jar包便可以使用了。
注:其它版本的编译办法也可以通过以上步骤实现。
以上转载http://www.iyunv.com/Linux/2013-01/77921.htm
 
按照步骤做了没有成功,不知道是哪里错了,所以偷懒了,直接下载编译好的。可以从附件中下载编译好的插件。
 
 
  
为了学习方便这个例子在“伪分布式模式”Hadoop安装方式下开发。 

第一步,我们先启动Hadoop守护进程。 
如果读过之前的文章(Walter的hadoop学习笔记前三章)
应该比较清楚在“伪分布式模式”下启动Hadoop守护进程的方法,在这里就不多说了。 

第二步,在Eclipse下安装hadoop-plugin。 

1.复制上面生成的文件到eclipse/plugin目录下面,重启eclipse。


2.重启eclipse,配置hadoop installation directory。 
如果安装插件成功,打开Window-->Preferens,你会发现Hadoop Map/Reduce选项,在这个选项里你需要配置Hadoop installation directory。配置完成后退出。 

3.配置Map/Reduce Locations。 
在Window-->Show View中打开Map/Reduce Locations。 
在Map/Reduce Locations中新建一个Hadoop Location。在这个View中,右键-->New Hadoop Location。在弹出的对话框中你需要配置Location name,如walter,还有Map/Reduce Master和DFS Master。这里面的Host、Port分别为你在mapred-site.xml、core-site.xml中配置的地址及端口。如: 

Map/Reduce Master 

Java代码   DSC0000.png


  • localhost  
  • 9001  

  

DFS Master 
Java代码  


  • localhost  
  • 9000  

  


配置完后退出。点击DFS Locations-->walter如果能显示HDFS中的内容,说明配置正确,如果显示"拒绝连接",请检查你的配置。 
 

第三步,新建项目。 
File-->New-->Other-->Map/Reduce Project 
项目名可以随便取,如hadoop-test。 
复制 hadoop安装目录/src/example/org/apache/hadoop/example/WordCount.java到刚才新建的项目下面。 

第四步,上传模拟数据文件夹。 
为了运行程序,我们需要一个输入的文件夹,和输出的文件夹。输出文件夹,在程序运行完成后会自动生成。我们需要给程序一个输入文件夹。 

1.在当前目录(如hadoop安装目录)下新建文件夹input,并在文件夹下新建两个文件file01、file02,这两个文件内容分别如下: 

file01 
Java代码  


  • Hello World Bye World   

  file02 
Java代码  


  • Hello Hadoop Goodbye Hadoop  

  

2.将文件夹input上传到分布式文件系统中。 

在已经启动Hadoop守护进程终端中cd 到hadoop安装目录,运行下面命令: 
Java代码  


  • hadoop fs -put input input

  
这个命令将input文件夹上传到了hadoop文件系统了,在该系统下就多了一个input文件夹,你可以使用下面命令查看: 
Java代码  


  • bin/hadoop fs -ls  

  

第五步,运行项目。 

1.在新建的项目hadoop-test,点击WordCount.java,右键-->Run As-->Run Configurations 
2.在弹出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount 
3.配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”,如: 
Java代码  


  • hdfs://localhost:9000/user/walter/input hdfs://localhost:9000/user/walter/output  

  或者用省略形式

Java代码 
 


  • input output  

  这里面的input就是你刚传上去文件夹。文件夹地址你可以根据自己具体情况填写。 

4.点击确定。 
  5右键项目名,run on hadoop

点击Run,运行程序,过段时间将运行完成,等运行结束后,可以在终端中用命令: 
Java代码  


  • hadoop fs -ls  

  
查看是否生成文件夹output。 

用下面命令查看生成的文件内容: 
Java代码  


  • hadoop fs -cat output/*  

  

如果显示如下,恭喜你一切顺利,你已经成功在eclipse下运行第一个MapReduce程序了。 
Java代码  


  • Bye 1  
  • Goodbye 1  
  • Hadoop  2  
  • Hello   2  
  • World   2  

 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-310620-1-1.html 上篇帖子: cloudera cdh中hadoop-client包的作用 下篇帖子: Hadoop学习七:Hadoop-Hdfs源码 conf包
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表