這既是關於java EOF異常的一般問題,也是與jar互操作性相關的Hadoop的EOF異常。任何一個主題的評論和答案都可以接受。從hbase/filesystem的hadoop namenode連接中發生EOF異常的含義是什麼?
背景
我注意到一些線程,其討論的隱蔽異常,這最終是由一「的readInt」方法引起的。這個異常似乎有一些獨立於hadoop的通用含義,但最終是由Hadoop罐子的互操作性引起的。
在我的情況下,當我嘗試在java中的hadoop中創建新的FileSystem對象時,我得到了它。
問題
我的問題是:這是怎麼回事?爲什麼一個整數的閱讀拋出一個異常EOF?這個EOF異常指的是什麼「文件」,以及爲什麼如果兩個罐子不能互操作會拋出這樣的異常呢?
其次,我也想知道如何解決這個錯誤,所以我可以連接並使用HDFS協議與Java API中,遠程讀/寫文件系統hadoops ....
java.io.IOException: Call to /10.0.1.37:50070 failed on local exception: java.io.EOFException at org.apache.hadoop.ipc.Client.wrapException(Client.java:1139) at org.apache.hadoop.ipc.Client.call(Client.java:1107) at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226) at $Proxy0.getProtocolVersion(Unknown Source) at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398) at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384) at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:111) at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:213) at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:180) at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89) at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1514) at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:67) at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:1548) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1530) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:228) at sb.HadoopRemote.main(HadoopRemote.java:35) Caused by: java.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:375) at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:819) at org.apache.hadoop.ipc.Client$Connection.run(Client.java:720)
它也可能意味着其他的東西...... EOF異常是非常通用的。 – jayunit100
抱歉,你的意思是服務於0.0.0.0。你能否從你的配置文件中記下名稱/價值支柱對? – hba
「服務到0.0.0.0」是什麼意思?文件core-site.sh具有屬性' fs.default.name hdfs:// localhost:9000/ '。將此設置從'localhost'更改爲'0.0.0.0'不能解決問題。 –
nikk