一、Hadoop2.4.0环境下Eclipse平台的搭建
1.安装Eclipse
对于hadoop集群,我们将eclipse安装在master节点上,首先下载Eclipse安装包(如:eclipse-jee-luna-SR1-linux-gtk.tar.gz)然后用tar -zxvf 命令解压,并把解压后的目录移动到/usr/local路径下,然后启动eclipse:
下载网址:http://www.eclipse.org/downloads/?osType=linux&release=undefined
2.在eclipse上安装hadoop插件
由于我们使用的是hadoop2.x版本的,所以插件我们也要下载 相应的版本(下载地址:http://pan.baidu.com/s/1mgiHFok)。下载的zip文件包含了源码,我们使用使用编译好的jar即可。解压后,release目录中的hadoop.eclipse-kepler-plugin-2.2.0.jar就是编译好的插件。我们将该jar包移动到/usr/local/eclipse/plugins目录下,然后重启eclipse:
当从上图中左侧"Project Explorer"下面发现"DFSLocations",说明eclipse已经识别刚才放入的HadoopEclipse插件了。
3.配置Hadoop installation directory
选择"Window"菜单下的"Preference"(如上图),然后弹出一个窗体,在窗体的左侧,有一列选项,里面会多出"HadoopMap/Reduce"选项,点击此选项,设置Hadoop的安装目录(如我的Hadoop目录是:/usr/hadoop)。结果如下图:
4.配置Map/Reduce Locations
打开Window—Open Perspective—Other,弹出一个窗体,从中选择"Map/Reduce"选项即可进行切换:
点击OK按钮后,在Eclipse软件的右上角活着右下角,会有如图所示的标志:
点击右下角标志:
选择“小象”图标,打开Hadoop Location配置窗口,并进行先关设置:
点击"finish"之后,会发现Eclipse软件下面的"Map/Reduce Locations"出现一条信息,即我们刚才建立的"Map/ReduceLocation".
查看HDFS文件系统,并尝试建立文件夹和上传文件。当我们在/usr/hadoop目录下有input和output目录时:
此时点击eclipse软件左侧的"DFS Locations"下面:我们也看到了input和output目录,如图:
到此为止,我们的Hadoop Eclipse开发环境已经配置完毕。
二、Eclipse调试及运行mapreduce程序
用eclipse运行mapreduce程序,便于mapreduce程序的编写和调试。我们以用测试hadoop自带的mapreduces程序WordCout为例(存放路径/usr/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-example-2.4.0.jar)加以说明。
1.创建Mapreduce项目
从"File"菜单,选择"Other",找到"Map/ReduceProject",然后选择它:
2.创建WordCount类:
选择"WordCountProject"工程,右击弹出菜单,然后选择"New",接着选择"Class",然后填写如下信息:然后在WordCount类中编写Mapreduce程序。
3.运行WordCount程序
(1)在HDFS上创建目录input1,并上传文件:
【注:文件中的内容为:file1.txt:hello Word file2.txt: hello Hadoop】
(2)配置运行信息:
点击WordCount.java,右键,点击Run As—>Run Configurations,配置运行参数,即输入和输出目录:
hdfs://master:9000/user/hadoop/input1
hdfs://master:9000/user/hadoop/output1
如果点击run按钮运行后,控制台出现:
那么我们需要在该项目的src目录下创建log4j.properties文件,然后对其配置,配置内容如下即可:
注:log4j文件的配置信息详见 http://blog.csdn.net/newhappy2008/article/details/2499250
4.结果查看:
①通过命令查看:
②在DFS Locations中查看:
运行后Wordcount程序后,刷新hadoop目录,出现output1目录,打开其目录下的part-r-00000文件,亦可得运行结果:
版权声明:本文为博主原创文章,未经博主允许不得转载。