Hadoop--异常java.io.EOFException

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

java.io.IOException: Call to /192.168.200.27:50070 failed on local exception: java.io.EOFException
	at 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.EOFException
	at 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值