基于Eclipse的Hadoop应用程序开发(在附件中能看到有图片的)

本文详细介绍了如何在Eclipse环境下搭建Hadoop应用程序开发环境,包括安装Hadoop插件、配置MapReduce环境、创建MapReduce项目以及运行WordCount示例。重点讲述了插件的来源、版本兼容性以及针对不同Eclipse版本的调整方法。
摘要由CSDN通过智能技术生成

      基于EclipseHadoop应用程序开发

实验准备阶段

     1.搭建好单机环境下的Hadoop环境,Eclipse不仅可以在hadoop伪分布式环境下开发应用程序也可以在Hadoop完全分布式环境下开发应用程序,一般情况下先在伪分布式环境下开发运行实验,然后在完全分布式环境下运行程序,这里我们讲解在伪分布式环境下也就是单机环境下的应用程序开发,着重讲解插件的安装及与Hadoop运行环境的结合,应用程序我们暂时使用Hadoop自带的WordCount程序进行本次试验。

     2.我们使用的是EclipseEclipse3.3.2,这里需要注意的是由于使用的是Hadoop-0.20.2的版本,Hadoop自带的插件只支持到Eclipse3.3.2,如果读者想应用到更高版本的Eclipse,需要修改插件的源代码,在最后我会附上插件源代码的修改过程,关于插件的历史需要说明的是,Hadoop原本不带开发插件,插件原由IBM公司自己开发,后来的Hadoop自带的插件也是IBM公司整合到Hadoop,成为Hadoop的一部分,在这里说明一下,因为以前我不知道以为Hadoop有另外的插件版本,走了不少弯路。

     3.基于EclipseHadoop应用程序开发的插件在Hadoop代码包的/contrib/eclipse-plugin目录下面,是hadoop-0.20.2-eclipse-plugin.jar,使用之前需要找到这个插件。

安装插件

      1.解压Eclipse,把插件复制粘贴到eclipse/plugins目录下面,并重启eclipse

      2.打开MapReduce视图,选择window-->Open Persrective-->Other 选择Map/Reduce,图标是蓝色的象

      3.添加一个MapReduce环境,在Eclipse下端控制台旁边会多出一个Tab,叫“Map/Reduce Locations,在下面空白的地方点击右键选择“New Hadoop Location,如图所示

      4.在弹出的对话框里填写下面内容

Location name :给自己的Hadoop起个名字(这个可以随便填)

Map/Reduce MasterJob Trackerip地址和端口,根据                  mapred-site.xml中配置mapred.job.tracker来填写。

DFS Master:Name Nodeip和端口,根据core-site.xml                     中 的fs.default.name来填写,此配置必须和Hadoop配置文件中的一致,Use M/R master host,这个复选框如果选上,就默认和Map/Reduce Master这个框里host一样,如果不选择,就可以自己定义输入,这里jobtracernamenode在一个机器上,所以是一样的就勾选上,然后点击finish按钮,此时,这个视图中就有多了一条记录,截图如上。

5.编辑advance parameters tab页(hadoop启动后才可编辑此项)

重启Eclipse并重新编辑刚才建立的那个连接记录,如图现在我们编辑advance parameters tab页,重启advance parameters tab页原因是在新建立连接的时候这个advance parmters tab 页面的一些属性会显示不出来,显示不出来也就没法设置,所以必须重启一下Eclipse再进行编辑才能看到,这里大部分属性都已经自动填上,其实就是把core-default.xml hafs-default.xml mapred-default.xml里面配置的属性展示出来,因为在安装Hadooop的时候,其site系列配置文件里有改动,所以这里也要设置和conf/core-site.xml hafs.site.xml mapred.site.xml中设置的一样,主要有以下的属性fs.default.name/mapred.job.tracker:这两个在步骤4中已经设置过了,dfs.replication:这里默认值是3,我们也设置为3,读者可以根据自己原来配置文件中的设置的备份个数确定,hadoop.job.ugi:刚才说的看不见的就是这个,就是这个属性,默认的好像是DrWho,Tardis.将逗号前面的部分更改为hadoop,最后:hadoop,Tardis(如果运行Eclipse的用户名是和集群的账户名一致,不用修改此项,在这里如果用我以前的文档搭建的集群就不需要修改此项了)mapred.child.tmp:设置为D:\hadoop\tmp(因为在以前的文档中我们为了避免hadoop搭建是出现的错误,设置此目录,现在还为这个)点击finish,设置完毕,注意:在\conf中修改的配置文件只是对CYGWIN中使用的命令行运行有效,在Eclipse中运行的参数是以这里的Advanced parameters为准,当然我们也可以在测试代码里进行手工修改进行覆盖操作,例如在WordCount源代码中写入如下代码Configuration config = new Configuration();config.set("mapred.child.tmp","C:/tmp");截图如下

6.使用EcliopseHDFS内容进行修改

经过上一步骤,左侧的"Project Exoplorer"中应该出现配置好的HDFS,点击右键可以进行新建文件,删除文件,上传文件,下载文件,删除文件夹等操作,注意每次操作后需要刷新才能显示操作后的内容,在这里我们在maprd文件夹中新建input output 文件夹并在input文件夹下面新增3个需要应用程序处理的文件,如图所示:

7.创建MapReduce工程

(1)配置hadoop路径

        选择window-->Preferences选择"Hadoop Map/Reduce",点击"Browse..."选择Hadoop文件夹的路径,这里我们根据以前我写的而配置文档设置为C:\Work\Hadoop\hadoop-0.20.2即可,这个步骤与运行环境无关,只是在新建工程时能将hadoop根目录下的所有的jar包自动导入,如图所示

(2)创建工程

Eclipse中选择File-->New-->Project选择“Map/Reduce Project,然后输入项目名称,创建项目,插件会自动把hadoop根目录和lib目录下的所有jar包导入,然后在src目录下面导入WordCount源代码(Hadoop自带的应用程序源代码路径为C:\Work\Hadoop\hadoop-0.20.2\src\examples\org\apache\hadoop\examples)如图所示

       

(3)配置所需的运行参数(光标在文件上,或者先debug一次)

Eclipse中选择Run As-->Open Run Dialog....选择WordCount,Arguments中配置运行参数hdfs://localhost:9000/tmp/hadoop-Administrator/mapred/input hdfs://localhost:9000/tmp/hadoop-Administrator/mapred/output/1

   也可以直接右击WordCounr.java文件进行配置,分别表示HDFS  下的输入目录和输出目录,其中输入目录中有几个文本文件,且输出目录必须不存在,如图所示:

8.运行程序

 右击工程,选择Run As-->Run on Hadoop选择配置好的MapReduce运行环境,点击“Finish”运行,如图所示

 9.查看运行结果

我们在经过刷新,我们在输出目录中可以看到输出结果,除此之外,还可以看到一个logs文件夹,里面会有运行的日志。如图所示

10.后续补充

(1)插件代码的修改

使用Eclipse3.3以上版本开发Hadoop应用程序时需要修改插件,具体内容如下:

方法1:使用的是Eclipse 3.7如果使用的是hadoop-0.20.2文件夹下的插件在最后一步在Hadoop上运行时会没有反应,如果下载hadoop-0.20.3-dev-eclipse-plugin.jar插件,改名字为hadoop-0.20.2-eclipse-plugin.jar,然后放在eclipse/plugin文件夹下面,重新配置mapreduce location.运行时会成功,当然也是在伪分布下的,此方适用于linux系统下的,在windows环境没测试,下载地址为https://issues.apache.org/jira/secure/attachment/12460491/hadoop-eclipse-plugin-0.20.3-SNAPSHOT.jar

在下列网址上下载的开源插件也同样适用http://code.google.com/p/hadoop-eclipse-plugin/downloads/list

方法2:直接对插件代码进行修改,编辑\Hadoop-0.20.2源代码\src\contrib\eclipse-plugin\src\java\org\apache\hadoop\eclipse\launch下的HadoopApplicationLaunchShortcut.java文件,做如下修改//import org.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationLauchShortcut;

Import org.eclipse.gdt.debug.ui.launchConfigurations.JavaApplicationLauochShortcut;修改完毕后在Hadoop目录下执行ant package重新打包eclipse插件,然后使用此插件,注意在编译eclipse-plugin之前,需要安装apache-ant,cpache-ivy,ant安装很简单,解压并添加到对应的bin目录到path变量中,ivy的安装就是讲解压后的jar包添加到ant目录下面,具体的过程见我的Hadoop源代码编译文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值