プレリリースサービス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つの主な質問があります:
- HDFS への外部接続は、このサービスで何らかの形でサポートされていますか?
- 名前ノードの構成を使用して HDFS に接続しようとしているのは正しいですか?