0

クロスポスト: http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/5030259c-3255-4aa7-a348-e102c007ce0d/

プレリリースサービスhttps://www.hadooponazure.comをチェックしています。通常のジョブの実行に加えて、アプリから HDFS にアクセスしたいと考えています。RDPを介して利用可能な名前ノードで実行しようとしています。

名前ノード構成 ('C:\Apps\dist\conf') をクラスパスに含めて、標準 Java HDFS ドライバー (org.apache.hadoop.fs.FileSystem.get() メソッドで開く) を試しました。私が理解している限り、名前ノードと同じ方法でアプリを 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 の内部ポリシーによって引き起こされたものだと思います。

だから私は2つの主な質問があります:

  1. HDFS への外部接続は、このサービスで何らかの形でサポートされていますか?
  2. 名前ノードの構成を使用して HDFS に接続しようとしているのは正しいですか?
4

1 に答える 1

0

あなたのエラーは、私の経験から、サーバー (Azure 側) にデプロイされた Hadoop ライブラリと、コードを実行しようとしているバージョンとの間にバージョンの不一致があることを示しています。

于 2012-12-31T00:29:19.313 に答える