美文网首页我爱编程
搭建Hadoop MapReduce的Eclipse开发环境

搭建Hadoop MapReduce的Eclipse开发环境

作者: 墙角儿的花 | 来源:发表于2017-01-08 20:32 被阅读0次

安装Eclipse插件

插件地址https://github.com/winghc/hadoop2x-eclipse-plugin,按着其说明编译得到适合hadoop版本的插件jar包。如hadoop-eclipse-plugin-2.7.3.jar,确认其放在了eclipse的plugins下。

启动hadoop

通过start-dfs.sh、start-yarn.sh启动

连接hadoop

打开首选项,找到Hadoop Map/Reduce选项,根据实际情况选择Hadoop的安装路径。

打开Map/Reduce透视图,在Map/Reduce Locations视图下创建hadoop连接。

在General选项卡下,Location name可以任意命名,如hadoop273。

Map/Reduce(v2) Master下配置job跟踪器的ip和端口,要和hadoop的配置项mapreduce.jobtracker.http.address一致,此处按上文《Hadoop2伪分布式安装部署》的环境配置,host为localhost ,port为50030。

DFS Master配置HDFS配置,该配置要和core-site.xml的fs.defaultFS配置一致,所以host为localhost,port为9000。

如果一切顺利,在工程视图的DFS Locations下树上可以浏览操作HDFS文件了。

创建文件夹

通过工程视图DFS Locations 右键提供的Create new directory在根目录下创建/user/$username/input待用,本例是/user/rbg/input。注意:该工具创建文件不会自动刷新,需要手动刷新一下才能显示出来。

该路径作为下面MapReduce程序的输入路径。

在input目录上右键,通过Upload files to DFS将本地某个文件上传到HDFS中,如选个hadoop的配置文件core-site.xml。

创建MapReduce Project

通过File->New->Project创建一个MapReduce Project,命名WordCount。

新建包org.apache.hadoop.example。

可以通过新建菜单提供的向导来新建Mapper、Reducer、MapReduce Driver三个部件。


3.png

也可以将三个部件放在一起,为方便,直接用hadoop自带的样例来讲解。

在hadoop安装目录下/share/hadoop/mapreduce/sources/找到hadoop-mapreduce-examples-2.7.3-sources.jar,解压,并拷贝WordCount.java到刚新建的包下。

在Eclipse中打开WordCount源代码,WordCount就是所谓的Mapreduce驱动程序,拥有一个main函数,负责启动一个mapreduce job。该main函数接收至少两个参数,最后一个参数代表输出路径,前面代表若干个输入路径。

在WordCount中声明了TokenizerMapper和IntSumReducer两个内部类,分别是一个mapper和一个reducer。mapper分析输入文本,以单词为key,1作为value输出。mapper接收到经过框架分组排序后的key-value,将value相加得到目标单词的总数,并以单词为key,总数为value进行输出。最终得出文本中每个单词出现的次数。

调试运行

创建WordCount的Java Application调试配置,在程序参数中输入

-conf /home/rbg/tools/hadoop273/etc/hadoop/core-site.xml input output

-conf 参数是为了告诉程序应用的配置,该参数会被main函数中调用的GenericOptionsParser自动解析。如果不用该配置可以将hadoop配置文件core-site.xml拷贝到工程src下也可以,但是第二种方式不太方便。

input output这两个目录自动对应HDFS下的/user/rbg/input和/user/rbg/output。

运行完毕,在output下可以查看运行结果。

相关文章

网友评论

    本文标题:搭建Hadoop MapReduce的Eclipse开发环境

    本文链接:https://www.haomeiwen.com/subject/xyqcbttx.html