shuyun00 2013-02-07
hadoop-eclipse开发环境搭建及error:failuretologin错误
分类:hadoop2012-10-2023:22191人阅读评论(0)收藏举报
对于Hadoop开发者来讲,通过JAVAAPI编程是进入Map-Reduce分布式开发的第一步。由于Eclipse本身并没有提供对MapReduce编程模式的支持,所以需要一些简单的步骤来实现。
1.安装Hadoop。
本文的Hadoop是部署在虚拟机上的伪分布模式。相关软件环境如下:
JDK:sunjdk1.6.0_30
Hadoop:hadoop-0.20.203.0
Linux:Ubuntu11.10
Eclipse:EclipseIndigo3.7.1
关于Hadoop伪分布环境的具体配置方式,此处不再赘述。设置方面,core-site.xml中fs.default.name中填写的是hdfs://localhost:9000
2.设置环境
在终端中输入
$sudovim/etc/profile
修改运行环境,在文件最尾添加如下内容:
exportHADOOP_HOME=/home/wangyucao/hadoop-0.20.203.0(此处即为hadoop的安装目录)
exportPATH=$PATH:#HADOOP_HOME/bin
3.安装Eclipse
在Ubuntu软件中心搜索Eclipse进行安装,或者通过官网下载Eclipse归档文件。此处选择通过官网下载,得到:
eclipse-jee-indigo-SR1-linux-gtk.tar.gz
解压该文件,并放在/usr目录下:
$tar-zxvfeclipse-jee-indigo-SR1-linux-gtk.tar.gz
$sudomveclipse/usr/
完成安装步骤。
4.安装hadoop-eclipse插件
hadoop的发行版本中都包含了hadoop-eclipse-plugin插件。在开发hadoop应用时,需要首先安装该Eclipse插件。
看到网上的教程,一般都是说直接将HADOOP_HOME/lib中的hadoop-eclipse-plugin-0.20.203.0.jar复制到eclipse安装目录下的plugins目录中。但是在我实践尝试中,发现hadoop-0.20.203.0版本的该包如果直接复制到eclipse的插件目录中,在连接DFS时会出现错误,提示信息为:"error:failuretologin",弹出的错误提示框内容为"Aninternalerroroccurredduring:"ConnectingtoDFShadoop".org/apache/commons/configuration/Configuration".经过察看Eclipse的log,发现是缺少jar包导致的。进一步查找资料后,发现直接复制hadoop-eclipse-plugin-0.20.203.0.jar,该包中lib目录下缺少了jar包。
经过网上资料搜集,此处给出正确的安装方法:
首先要对hadoop-eclipse-plugin-0.20.203.0.jar进行修改。用归档管理器打开该包,发现只有commons-cli-1.2.jar和hadoop-core.jar两个包。将HADOOP_HOME/lib目录下的commons-configuration-1.6.jar,commons-httpclient-3.0.1.jar,commons-lang-2.4.jar,jackson-core-asl-1.0.1.jar和jackson-mapper-asl-1.0.1.jar等5个包复制到hadoop-eclipse-plugin-0.20.203.0.jar的lib目录下,如下图:
然后,修改该包META-INF目录下的MANIFEST.MF,将classpath修改为一下内容:
Bundle-ClassPath:classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-httpclient-3.0.1.jar,lib/jackson-core-asl-1.0.1.jar,lib/jackson-mapper-asl-1.0.1.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar
如下图:
这样就完成了对hadoop-eclipse-plugin-0.20.203.0.jar的修改。
最后,将hadoop-eclipse-plugin-0.20.203.0.jar复制到Eclipse的plugins目录下:
$cd~/hadoop-0.20.203.0/lib
$sudocphadoop-eclipse-plugin-0.20.203.0.jar/usr/eclipse/plugins/
5.在Eclipse中对该插件进行配置。
首先,打开Eclipse,设置好workspace。
选择window->openperspective->Other...,选择有大象图标的Map/Reduce.
此时,就打开了Map/Reduce的开发环境。可以看
到,右下角多了一个Map/ReduceLocations的框。如下图:
然后,设置Hadoop的环境参数。选择Map/ReduceLocations标签,点击该标签最右边的大象图标,即那个齿轮状图标右侧的大象图标,打开参数设置页面,参数填写如下图:
LocationName:此处为参数设置名称,可以任意填写
Map/ReduceMaster(此处为Hadoop集群的Map/Reduce地址,应该和mapred-site.xml中的mapred.job.tracker设置相同)
Host:localhost
port:9001
DFSMaster(此处为Hadoop的master服务器地址,应该和core-site.xml中的fs.default.name设置相同)
Host:localhost
Port:9000
设置完成后,点击Finish就应用了该设置。
此时,在最左边的ProjectExplorer中就能看到DFS的目录,如下图所示。
到这里,就完成了hadoop插件的设置过程。