gpt4 book ai didi

java - 从远程机器访问 hadoop

转载 作者:可可西里 更新时间:2023-11-01 14:22:25 25 4
gpt4 key购买 nike

我在服务器 VM 上设置了 hadoop(伪分布式),我正在尝试使用 Java API 访问 HDFS。

我服务器上的 fs.default.name 是 hdfs://0.0.0.0:9000(与 localhost:9000 一样,它不会接受来自远程的请求网站)。

我可以连接到9000端口的服务器

$ telnet srv-lab 9000
Trying 1*0.*.30.95...
Connected to srv-lab
Escape character is '^]'.
^C

这向我表明连接应该可以正常工作。我使用的 Java 代码是:

try {
Path pt = new Path(
"hdfs://srv-lab:9000/test.txt");
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://srv-lab:9000");
FileSystem fs = FileSystem.get(conf);
BufferedReader br = new BufferedReader(new InputStreamReader(
fs.open(pt)));
String line;
line = br.readLine();
while (line != null) {
System.out.println(line);
line = br.readLine();
}
} catch (Exception e) {
e.printStackTrace();
}

但我得到的是:

java.net.ConnectException: Call From clt-lab/1*0.*.2*2.205 to srv-lab:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

因此,关于为什么即使通过 telnet 连接工作正常,连接仍被拒绝的任何提示?

最佳答案

您的 hdfs 条目有误。 fs.default.name 必须设置为 hdfs://srv-lab:9000。设置它并重新启动您的集群。这将解决问题

关于java - 从远程机器访问 hadoop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35034872/

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