2012-07-13 147 views
0

Crosspost來自:http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/5030259c-3255-4aa7-a348-e102c007ce0d/直接HDFS訪問

我檢查預發佈服務https://www.hadooponazure.com。除了通常的工作執行外,我還想從我的應用程序訪問HDFS。我試圖在名稱節點上運行它,通過RDP提供。我試過stahdard Java HDFS驅動(用org.apache.hadoop.fs.FileSystem.get()方法打開),包括名稱節點配置('C:\ Apps \ dist \ conf')到類路徑。據我所知,這應該足以將我的應用程序連接到HDFS羣集,就像名稱節點一樣。

但我發現了以下異常:

Exception in thread "main" java.io.IOException: Failed on local exception: java.io.EOFException; Host Details : local host is: "RD00155D42B620/10.*.*.*"; destination host is: ""10.*.*.*":9000; 
     at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:724) 
     at org.apache.hadoop.ipc.Client.call(Client.java:1090) 
     at org.apache.hadoop.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:193) 
     at $Proxy6.getFileInfo(Unknown Source) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:100) 
     at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:65) 
     at $Proxy6.getFileInfo(Unknown Source) 
     at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1170) 
     at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:725) 
     at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1165) 
     at org.gridgain.examples.dataload.GridCacheHdfsDataLoaderExample.populateHdfs(GridCacheHdfsDataLoaderExample.java:225) 
     at org.gridgain.examples.dataload.GridCacheHdfsDataLoaderExample.main(GridCacheHdfsDataLoaderExample.java:93) 
Caused by: java.io.EOFException 
     at java.io.DataInputStream.readInt(DataInputStream.java:392) 
     at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:818) 
     at org.apache.hadoop.ipc.Client$Connection.run(Client.java:756) 

(。其中,10 *是名稱節點,在那裏我乳寧我的應用程序的IP)。

我認爲這種連接失敗是由某種Azure內部策略引起的。

所以,我有兩個主要問題:

  1. 是外部連接到HDFS在這個服務在某種程度上支持?
  2. 我是否試圖使用名稱節點的配置連接到HDFS?

回答

0

根據我的經驗,您的錯誤表明在服務器上部署的Hadoop庫(Azure端)與您嘗試運行代碼的版本之間存在版本不匹配。