Eclipse执行Hadoop WordCount
前期工作
我的Eclipse是安装在Windows下的,通过Eclipse执行程序连接Hadoop, 需要让虚拟机的访问地址和本机的访问地址保持在同一域内,虚拟机的地址更改前面的文章介绍过了,如果想改windows本机ip地址,打开“网络和共享中 心“,点击左侧菜单”更改适配器设置“,选择相应连接网络进行IpV4属性地址修改即可。我虚拟机地址为192.168.3.137
准备工作
地址配置好之后,在Eclipse上要安装Hadoop的插件(你可以参考源码自行修改)。
打开Eclipse安装路径---\eclipse\plugins,把hadoop-eclipse-plugin-1.1.2.jar放到这个目录下。
windows本机新建目录(本人在E:\hadoopMapReduceDir),从Linux的Hadoop安装包内复制所有jar放到这个目录下备用。
Ubuntu 13.04上搭建Hadoop环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu下Hadoop环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建Hadoop环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
搭建Hadoop环境(在Winodws环境下用虚拟机虚拟两个Ubuntu系统进行搭建) http://www.linuxidc.com/Linux/2011-12/48894.htm
配置工作
打开Eclipse,在菜单栏点击Window,showView选择Other打开选择显示的窗口,如下
在MapReduceTools 目录下找到这只大象,将它拖到Eclipse底部显示(和Console放一块)
打开新建配置窗口,设置连接信息,下图是本机的连接配置名称自己填写,两个端口和username 按图填写(Hadoop默认的端口)
点击Eclipse菜单栏Window ---》Preference,找到HadoopMap/Reduce,点击之后在右侧选择导入Hadoop jar的路径,这样以后新建Hadoop项目,jar包会自动从该路径加载,路径上面已设,添加进来如图:
创建项目
点击File---》other,打开新建对话框,创建Map/ReduceProject项目NewHadoopTest
创建完成后你会看到jar包自动加载到项目之中
拷贝Linux下Hadoop的src目录下的example java项目 到刚刚创建的工程下src下,
Linux下启动Hadoop(用JPS检查是否已启动),在Eclipse连接,连接成功后Hadoop目录就会显示如下
修改代码
现在设置方面基本完成,接下来就是针对WordCount.java所做的修改和HDFS路径配置
打开WordCount.java(可能会报错),将main方法更改如下:
如果GenericOptionsParser报错,将Hadoop-core-1.1.2.jar加到项目中(或放到jar配置路径)。新建a.txt文件,输入下面内容,保存
在hadoopname下user—》hadoop目录创建input文件夹,将文件a.txt上传到HDFS input上,过程如下(不要创建output目录,不然执行会报错,),如果HDFS已有,可Linux使用命令hadoop fs -rmr /output删除)
在选择Wordcount.java,右击run as ---》run configurations,打开Arguments填写input out路径(注意:input和output路径中间是有空格的),这里我设置查询input下所有文件的单词出现次数。
右击WordCount.java,run as -àrun on hadoop 执行
执行结束后,刷新DFS Locations/ use/hadoop
自动生成output文件夹,点击可以看到执行结果。最终结果存放在part-r-00000中,双击查看即可