直接HDFS访问
问题描述:
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内部策略引起的。
所以,我有两个主要问题:
- 是外部连接到HDFS在这个服务在某种程度上支持?
- 我是否试图使用名称节点的配置连接到HDFS?
答
根据我的经验,您的错误表明在服务器上部署的Hadoop库(Azure端)与您尝试运行代码的版本之间存在版本不匹配。