实验指导书
使用Eclipse编译运行MapReduce程序_Hadoop2.6.0_Ubuntu/CentOS
1.1实验目的
在 Ubuntu/CentOS 中使用 Eclipse 来开发 MapReduce 程序,在 Hadoop 2.6.0 下验证通
过
1.2实验环境
本教程在 Hadoop 2.6.0 下验证通过,适用于 Ubuntu/CentOS 系统,理论上可用于任何原
生 Hadoop 2 版本,如 Hadoop 2.4.1,Hadoop 2.7.1。
本教程主要测试环境:
CentOS 6.6
Hadoop 2.6.0(伪分布式)
Eclipse mars-1 x86
此外,本教材在 Ubuntu 14.04 系统中也验证通过,对 Ubuntu 与 CentOS 的不同配置之处
有作出了注明。
此次教程是在CentOS 6.6下进行,已经完成eclipse安装,可以跳过该步骤
hadoop2x-eclipse-plugin-master.zip 已经存放至/usr/local之中如果遇到虚拟机网络中
断或者下载过慢的情况,可直接至进行解压
WordCount的mapreduce代码放置在桌面
1.3实验步骤
1.3.1安装eclipse
在 Ubuntu 和 CentOS 中安装 Eclipse 的方式有所不同,但之后的配置和使用是一样的。
在 Ubuntu 中安装 Eclipse,可从 Ubuntu 的软件中心直接搜索安装,在桌面左侧任务栏,
点击“Ubuntu软件中心”(图1)。
在右上角搜索栏中搜索 eclipse,在搜索结果中单击 eclipse,并点击安装(图2)。
图 1 Ubuntu软件中心
图 2 安装Eclipse
等待安装完成即可,Eclipse 的默认安装目录为:/usr/lib/eclipse。
在 CentOS 中安装 Eclipse,需要下载安装程序,我们选择 Eclipse IDE for Java
Developers 版:
32位: http://eclipse.bluemix.net/packages/mars.1/?JAVA-LINUX32
64位: http://eclipse.bluemix.net/packages/mars.1/?JAVA-LINUX64
下载后执行如下命令,将 Eclipse 安装至 /usr/lib 目录中:
sudo tar -zxf ~/下载/eclipse-java-mars-1-linux-gtk*.tar.gz -C /usr/lib
解压后即可使用。在 CentOS 中可以为程序创建桌面快捷方式,如图3所示,点击桌面右键
,选择创建启动器,填写名称和程序位置(/usr/lib/eclipse/eclipse):
图 3 安装Eclipse
1.3.2安装 Hadoop-Eclipse-Plugin
要在 Eclipse 上编译和运行 MapReduce 程序,需要安装 hadoop-eclipse-plugin,可下载
Github 上的 hadoop2x-eclipse-plugin,地址
https://github.com/winghc/hadoop2x-eclipse-plugin(备用下载地址:
http://pan.baidu.com/s/1i4ikIoP)。
下载后,将 release 中的 hadoop-eclipse-kepler-plugin-2.6.0.jar (还提供了 2.2.0
和 2.4.1 版本)复制到 Eclipse 安装目录的 plugins 文件夹中,运行 eclipse -clean 重
启 Eclipse 即可(添加插件后只需要运行一次该命令,以后按照正常方式启动就行了)。
若下载速度过慢,在/usr/local中已经下载了hadoop2x-eclipse-plugin-master.zip,可直
接进行解压
cd /usr/local/
sudo unzip -qo hadoop2x-eclipse-plugin-master.zip
sudo cp hadoop2x-eclipse-plugin-master/release/hadoop-eclipse-plugin-2.6.0.jar
/usr/local/eclipse/plugins/
/usr/local/eclipse/eclipse -clean
# 复制到 eclipse 安装目录的 plugins 目录下
# 添加插件后需要用这种方式使插件生效
1.3.3配置 Hadoop-Eclipse-Plugin
在继续配置前请确保已经开启了 Hadoop。若没开启,则启动hadoop
start-dfs.sh
启动 Eclipse 后就可以在左侧的Project Explorer中看到 DFS Locations(,图4,若看到
的是 welcome 界面,点击左上角的 x 关闭就可以看到了。CentOS 需要切换 Perspective
后才能看到,即接下来配置步骤的第二步)。
图 4 安装好Hadoop-Eclipse-Plugin插件后的效果
插件需要进一步的配置。
第一步:选择 Window 菜单下的 Preference(图5)。
此时会弹出一个窗体,窗体的左侧会多出 Hadoop Map/Reduce 选项,点击此选项,选择
Hadoop 的安装目录(图6,如/usr/local/hadoop,Ubuntu不好选择目录,直接输入就行)
图 5 打开Preference
。
图 6 选择 Hadoop 的安装目录
第二步:切换 Map/Reduce 开发视图,点击 Open Perspective ,弹出一个窗体,从中选择
Map/Reduce 选项即可进行切换(图7)。
图 7 切换 Map/Reduce 开发视图
第三步:建立与 Hadoop 集群的连接,点击 Eclipse软件右下角的 Map/Reduce Locations
面板,在面板中单击右键,选择 New Hadoop Location(图8)。
图 8 建立与 Hadoop 集群的连接
在弹出来的 General 选项面板中,General 的设置要与 Hadoop 的配置一致。一般两个
Host 值是一样的,如果是伪分布式,填写 localhost 即可,另外我使用的Hadoop伪分布式
配置,设置 fs.defaultFS 为 hdfs://localhost:9000,则 DFS Master 的 Port 要改为
9000。Map/Reduce(V2) Master 的 Port 用默认的即可,Location Name 随意填写。
最后的设置如图9所示:
图 9 Hadoop Location 的设置
Advanced parameters 选项面板是对 Hadoop 参数进行配置,实际上就是填写 Hadoop 的配
置项(/usr/local/hadoop/etc/hadoop中的配置文件),如我配置了 hadoop.tmp.dir ,就要
进行相应的修改。但修改起来会比较繁琐,我们可以通过复制配置文件的方式解决(下面会
说到)。
总之,我们只要配置 General 就行了,点击 finish,Map/Reduce Location 就创建好了。
1.3.4在 Eclipse 中操作 HDFS 中的文件
配置好后,点击左侧 Project Explorer 中的 MapReduce Location (点击三角形展开)就
能直接查看 HDFS 中的文件列表了(HDFS 中要有文件,如下图是 WordCount 的输出结果)
,双击可以查看内容,右键点击可以上传、下载、删除 HDFS 中的文件,无需再通过繁琐的
hdfs dfs -ls 等命令进行操作了。
以下output/part-r-00000文件记录了输出结果(图10)。阅读查看HDFS文件系统数据的三
种方法可进行扩展学习。
图 10 使用Eclipse查看HDFS中的文件内容
如果无法查看,可右键点击 Location 尝试 Reconnect 或重启 Eclipse。
Tips
HDFS 中的内容变动后,Eclipse 不会同步刷新,需要右键点击 Project Explorer中的
MapReduce Location,选择 Refresh,才能看到变动后的文件。
1.3.5在 Eclipse 中创建 MapReduce 项目
点击 File 菜单,选择 New -> Project...(图11):