Eclipse执行Hadoop WordCount,hadoopwordcount


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放到这个目录下备用。

 

配置工作

  打开Eclipse,在菜单栏点击Window,showView选择Other打开选择显示的窗口,如下

  在MapReduceTools 目录下找到这只大象,将它拖到Eclipse底部显示(和Console放一块)

  点击大象,在下边空白区右击 选择New Hadooplocation(见下图)

  打开新建配置窗口,设置连接信息,下图是本机的连接配置名称自己填写,两个端口和username 按图填写(Hadoop默认的端口)

  点击Eclipse菜单栏Window ---》Preference,找到HadoopMap/Reduce,点击之后在右侧选择导入Hadoop jar的路径,这样以后新建Hadoop项目,jar包会自动从该路径加载,路径上面已设,添加进来如图:

创建项目

  点击File---》other,打开新建对话框,创建Map/ReduceProject项目NewHadoopTest

  创建完成后你会看到jar包自动加载到项目之中

  拷贝Linux下Hadoop的src目录下的example java项目 到刚刚创建的工程下src下,

里面就有WordCount.java

  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中,双击查看即可

 


eclipse 上运行 hadoop WordCount 错误

没有给出正确的两个输入参数:输入目录和输出目录;
 

使用win7下的eclipse运行hadoop的wordcount,出现错误如下,解决

ClassNotFoundException: org.apache.hadoop.examples.WordCount$TokenizerMapper

Ctrl+Shift+T查找一下,添加相应的依赖,再检查下运行配置的classpath是否包含此类。如果存在该类,有可能是ClassLoader导致的问题。
 

相关内容