Hadoop--异常java.io.EOFException

来源:互联网 发布:开源商城系统 php 编辑:程序博客网 时间:2024/06/14 17:16

最近做了一个程序,像hadoop的hdfs中存储数据,我写了个测试方法,但是执行时就抛出如下异常:

java.io.IOException: Call to /192.168.200.27:50070 failed on local exception: java.io.EOFExceptionat org.apache.hadoop.ipc.Client.wrapException(Client.java:1107)at org.apache.hadoop.ipc.Client.call(Client.java:1075)at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)at $Proxy1.getProtocolVersion(Unknown Source)at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:396)at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:379)at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:119)at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:238)at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:203)at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89)at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1386)at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1404)at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:254)at com.gp.hadoop.TestHadoop.putImageToHadoop(TestHadoop.java:31)at com.gp.hadoop.TestHadoop.main(TestHadoop.java:72)Caused by: java.io.EOFExceptionat java.io.DataInputStream.readInt(DataInputStream.java:375)at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:811)at org.apache.hadoop.ipc.Client$Connection.run(Client.java:749)

纠结了好久,在网上搜了好多资料,都说是客户端与服务器版本不一致,经过各种调试还是不好用。


最终发现原因,是端口号写错了,默认hdfs的入口端口号应该是9099。

代码如下:

public static void main(String args[]) {try {logger.warn("execute test() method");StringBuffer sb = new StringBuffer();sb.append("hdfs://192.168.200.27:9099/liveEpg/ads/1/2/5.jpg");byte[] img = getPicture("d://297x167.jpg");//readFromHdfs(sb.toString());putImageToHadoop(sb.toString(), img);} catch (Exception e) {e.printStackTrace();logger.warn(e);}}

问题原因:hdfs://192.168.200.27:9099/liveEpg/ads/1/2/5.jpg

0 0
原创粉丝点击