从远程机器访问hadoop

oxcyiej7  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(330)

我已经在服务器vm上设置了hadoop(伪分布式),我正在尝试使用javaapi来访问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进行连接也会被拒绝的任何提示?

czq61nw1

czq61nw11#

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

相关问题