我正在捣腾hadoop,用java编写了一个程序,想要连接到hdfs上,运行后显示如下,这是啥问题呢?求解!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我正在捣腾hadoop,用java编写了一个程序,想要连接到hdfs上,运行后显示如下,这是啥问题呢?求解!相关的知识,希望对你有一定的参考价值。

悬赏10分!

13/05/05 16:38:09 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS
13/05/05 16:38:09 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=300000
java.io.IOException: Call to /127.0.0.1:8888 failed on local exception: java.io.EOFException
at org.apache.hadoop.ipc.Client.wrapException(Client.java:940)
at org.apache.hadoop.ipc.Client.call(Client.java:908)
at org.apache.hadoop.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:198)
at $Proxy0.getProtocolVersion(Unknown Source)
at org.apache.hadoop.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:228)
at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:224)
at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:156)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:255)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:222)
at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:94)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1734)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:74)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:1768)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1750)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:234)
at com.ibm.util.HDFSUtil.getFileSystem(HDFSUtil.java:20)
at com.ibm.util.HDFSUtil.main(HDFSUtil.java:193)
Caused by: java.io.EOFException
at java.io.DataInputStream.readInt(Unknown Source)
at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:664)
at org.apache.hadoop.ipc.Client$Connection.run(Client.java:602)
java.lang.NullPointerException
at com.ibm.util.HDFSUtil.listNode(HDFSUtil.java:30)
at com.ibm.util.HDFSUtil.main(HDFSUtil.java:194)

你的hadoop是2.X的,但是还是按1.X的配置,需修改配置,或者还原hadoop版本。追问

问题找到了,我程序里面用的hadoop的jar包版本和我的hadoop版本对不上,后来我修改了jar包,就编译成功了,哈哈

参考技术A 代码一起贴上来 参考技术B hadoop连接错误,你端口设置的8888么?用jps 命令查看一下是不是正常启动:

一般如果正常启动hadoop,我们可以在master上通过jps命令看到以下5个daemons:
[root@master ~]# jps
19803 SecondaryNameNode
19994 TaskTracker
31144 Jps
19571 NameNode
19672 DataNode
19887 JobTracker
如果启动正常,可以用:hadoop fs -ls 查看一下是否可以连接,如果没有异常抛出说明hadoop本身是没有问题的。追问

哈哈 问题解决了 是程序用的hadoop的jar包与搭建的hadoop版本不符的问题 谢谢了

参考技术C 缓存超时?有代码吗,发一下

hadoop fs -ls隐藏文件

我正在编写一个实用程序来根据日期清理HDFS。虽然该实用程序使用hadoop库来关闭它,但它也可以使用hadoop jar或java -jar在常规file:/// filesystem上运行来执行它。但是,我发现的实用程序的一个缺点是它当前无法清除“隐藏”文件(以句点开头)。我猜,并问你聪明的人,如果那是因为HDFS没有隐藏文件。这个假设得到了验证,是否有任何建议我可以做些什么来使它成为一个通用实用程序,以便它可以列出并因此删除隐藏文件?

答案

命令:列出所有隐藏的文件夹和文件

~]$ ls -ld .?*

以上是关于我正在捣腾hadoop,用java编写了一个程序,想要连接到hdfs上,运行后显示如下,这是啥问题呢?求解!的主要内容,如果未能解决你的问题,请参考以下文章

HTTPClient 从 keytab 登录以访问 hadoop jobhistory 服务

hadoop fs -ls隐藏文件

Hadoop 程序在“java -jar”下运行良好,但在“hadoop jar”下运行良好

如何使用Python为Hadoop编写一个简单的MapReduce程序

如何在hadoop-2.6.0上编译运行自己编写的java代码

Hadoop系列Hadoop三大核心之MapReduce-程序编写