`

eclipse安装hadoop插件的问题

阅读更多
Hadoop版本:Hadoop-0.20.203.0
安装过程遇到的问题:An internal error occurred during: "Connecting to DFS Hadoop".org/apache/commons/configuration/Configuration
解决方法(转自http://hi.baidu.com/wangyucao1989/blog/item/279cef87c4b37c34c75cc315.html):
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: failure to login",弹出的错误提示框内容为"An internal error occurred during: "Connecting to DFS hadoop". 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

$ sudo cp hadoop-eclipse-plugin-0.20.203.0.jar /usr/eclipse/plugins/



5. 在Eclipse中对该插件进行配置。

首先,打开Eclipse,设置好workspace。

选择window -> open perspective -> Other... , 选择有大象图标的 Map/Reduce.



此时,就打开了Map/Reduce的开发环境。可以看到,右下角多了一个Map/Reduce Locations的框。如下图:



然后,设置Hadoop的环境参数。选择Map/Reduce Locations 标签,点击该标签最右边的大象图标,即那个齿轮状图标右侧的大象图标,打开参数设置页面,参数填写如下图:



Location Name : 此处为参数设置名称,可以任意填写

Map/Reduce Master (此处为Hadoop集群的Map/Reduce地址,应该和mapred-site.xml中的mapred.job.tracker设置相同)

    Host: localhost

    port: 9001

DFS Master  (此处为Hadoop的master服务器地址,应该和core-site.xml中的 fs.default.name 设置相同)

    Host: localhost

    Port: 9000

设置完成后,点击Finish就应用了该设置。

此时,在最左边的Project Explorer中就能看到DFS的目录,如下图所示。



到这里,就完成了hadoop插件的设置过程。
分享到:
评论
1 楼 得小白者天下得 2014-09-11  
你好,我按照你的设置弄过以后还是报出同样的错。以下是出错信息
java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration
	at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<init>(DefaultMetricsSystem.java:37)
	at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<clinit>(DefaultMetricsSystem.java:34)
	at org.apache.hadoop.security.UgiInstrumentation.create(UgiInstrumentation.java:51)
	at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:196)
	at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:159)
	at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:216)
	at org.apache.hadoop.security.KerberosName.<clinit>(KerberosName.java:83)
	at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:189)
	at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:159)
	at org.apache.hadoop.security.UserGroupInformation.isSecurityEnabled(UserGroupInformation.java:216)
	at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:409)
	at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:395)
	at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:1418)
	at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1319)
	at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:226)
	at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:109)
	at org.apache.hadoop.eclipse.server.HadoopServer.getDFS(HadoopServer.java:463)
	at org.apache.hadoop.eclipse.dfs.DFSPath.getDFS(DFSPath.java:146)
	at org.apache.hadoop.eclipse.dfs.DFSFolder.loadDFSFolderChildren(DFSFolder.java:61)
	at org.apache.hadoop.eclipse.dfs.DFSFolder$1.run(DFSFolder.java:178)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration cannot be found by org.apache.hadoop.eclipse_0.18.0
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	... 21 more

相关推荐

Global site tag (gtag.js) - Google Analytics