gpt4 book ai didi

java - 如何连接到远程HDFS

转载 作者:行者123 更新时间:2023-12-02 21:32:54 25 4
gpt4 key购买 nike

我正在尝试连接到在远程计算机上运行的HDFS实例。

我在Windows机器上运行Eclipse,而HDFS在Unix机器上运行。这是我尝试过的

         Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://remoteHostName:portNumber");
DFSClient client = null;
System.out.println("try");
try
{
System.out.println("trying");
client = new DFSClient(conf);

System.out.println(client);
}
catch (IOException e) {

e.printStackTrace();
}

finally {
if(client!=null)
try {
client.close();
} catch (IOException e) {

e.printStackTrace();
}


}

但这给了我以下异常(exception)
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.ipc.RPC.getProxy(Ljava/lang/Class;JLjava/net/InetSocketAddress;Lorg/apache/hadoop/security/UserGroupInformation;Lorg/apache/hadoop/conf/Configuration;Ljavax/net/SocketFactory;ILorg/apache/hadoop/io/retry/RetryPolicy;Z)Lorg/apache/hadoop/ipc/VersionedProtocol;
at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:135)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:280)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:245)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:235)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:226)

顺便说一句,我从远程计算机上的hdfs-site.xml中获取了portNumber

这种方法正确吗?

另外,在Python中这样做会更容易吗?

编辑

请注意,我确实在Windows上解压缩了Hadoop二进制文件,并且已经相应地设置了HADOOP_HOME环境变量。这会引起问题吗?

最佳答案

有关特定问题,请参见:Hadoop 2.6.0 Browsing filesystem Java

除此之外,您可能需要考虑使用REST进行远程交互。 Apache Knox可以为您提供对远程集群的访问权限,并使您的代码不必知道集群内部信息,例如host:port,kerberos与否等。这些东西可以从您的远程客户端中更改。

关于java - 如何连接到远程HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33610916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com