在eclipse下编写简单mapreduce程序

来源:互联网 发布:python注释中文 编辑:程序博客网 时间:2024/04/30 03:51

转载请注明:http://hanlaiming.freetzi.com/?p=117

前两天搭建好了hadoop环境,昨天完成了hadoop的eclipse插件编译,所以今天测试一下一些简单的mapreduce程序如何在eclipse上运行。

首先说明我的实验环境:

ubuntu版本12.04,hadoop版本1.2.1,java版本1.7.0_45,eclipse版本4.2Juno

然后开始准备第一个也是最简单的测试,已然是wordcount,我是参考的这篇文章http://phz50.iteye.com/blog/932373。

下面是我的总结:

1,准备好测试文件,提前上传到hdfs目录所在的文件夹下,比如我的是input。在eclipse中新建项目,选择Mapreduce Project,命名为WordCount,然后导入hadoop中自带的WordCount.java,找不到可以搜索,然后右击WordCount.java,选择Run as——Run Configurations,在里面的java application处右键选择New,然后在Arguments处添加你的hadoop目录所在的输入和输出文件夹参数,比如,我的是:

hdfs://minglaihan:9000/user/hadoop/input hdfs://minglaihan:9000/user/hadoop/output

这个是表示,你的第一个参数是输入目录,第二个参数是输出目录,然后点击Run,就Ok了,Hdfs的系统要不断手动刷新,这一点要注意。

2,简单的wordcount仅仅是让我们知道eclipse下怎样运行,接下来开始学习数据去重DataDeduction,主要运行步骤和前面类似,这里主要分析一下我在网上找到的代码为什么不能顺利在我的hadoop上运行。

网上大部分提供的代码都是一个版本,参考http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.html,但是总提示我ClassNotFound Map的错误,我后来看了一下最近买的一本书,修改了一下代码,最后成功运行。主要的改动有去掉这两行即可,具体原因可能是在参数里设定了就不用在函数中说明吧,反而会让系统判定缺失一些数据。

 conf.set("mapred.job.tracker", "192.168.1.2:9001");String[] ioArgs=new String[]{"dedup_in","dedup_out"};

3,然后是数据排序,这个测试研究了挺长时间,但是和最终结果还是有点偏差,所以等研究明白再做更新,ok~~

原创粉丝点击