我在用eclipse链接hadoop(已经链接成功)过程中,eclipse上传文件失败,希望得到解答谢谢
上一步配置好后,正常的话点击左侧 Project Explorer 中的 MapReduce Location (点击三角形展开)就能连上Hadoop集群,在左侧project Export直接查看 HDFS 中的文件列表了(HDFS 中要有文件),双击可以查看内容,右键点击可以上传、下载、删除 HDFS 中的文件,无需再通过繁琐的 hdfs dfs -ls
等命令进行操作了。
但在这里报出了一个bug
An internal error occurred during: “Connecting to DFS connect”.
org/apache/commons/io/Charsets
无法初始化类org/apache/commons/io/Charsets
我寻思着这是个找不到某文件的报错,我怀疑是编译的Hadoop-Eclipse-Plugin的jar包缺少文件。
我去搜了一圈博客,果8其然,我找到了报错原因:项目启动报错:java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets。
是个编译的Hadoop-Eclipse-Plugin插件缺少jar包以及两个jar包之间有类名冲突的问题。
于是我去Hadoop的安装目录下把缺少的commons-io-2.4.jar包加进插件的lib目录下,然后,需要去修改插件下META-INF目录下的MANIFEST.MF,将classpath添加以下内容:
lib/commons-io-2.4.jar
debug思路参考:配置Eclipse的Hadoop插件时无法连接HDFS的解决办法
然后重新打开Eclipse,重新建立与Hadoop集群的连接,连接建立成功。
我们能直接在Eclipse中查看 HDFS 中的文件列表(HDFS 中要有文件),双击可以查看内容,右键点击可以上传、下载、删除 HDFS 中的文件,而无需再通过繁琐的 hdfs dfs -ls
等命令进行操作了。
注意:HDFS 中的内容变动后,Eclipse 不会同步刷新,需要右键点击 Project Explorer中的 MapReduce Location,选择 Refresh,才能看到变动后的文件。
只是一篇简单的实践小笔记,暂且先写到这里。