安装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三个部件。
也可以将三个部件放在一起,为方便,直接用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下可以查看运行结果。