小编mro*_*man的帖子

从远程机器访问hadoop

我在服务器 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
Run Code Online (Sandbox Code Playgroud)

这向我表明连接应该可以正常工作。我正在使用的 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) …
Run Code Online (Sandbox Code Playgroud)

java hadoop

5
推荐指数
1
解决办法
5139
查看次数

如果绑定到特定接口然后IP更改会发生什么?

使用以下代码段,我绑定到特定的接口

iface, err := net.InterfaceByName(ifaceName)

if err != nil {
    return nil, fmt.Errorf("ERR: Error using interface %q: %q", ifaceName, err.Error())
}

addrs, err := iface.Addrs()

if err != nil {
    return nil, fmt.Errorf("ERR: Error using interface %q: %q", ifaceName, err.Error())
}

if len(addrs) < 1 {
    return nil, fmt.Errorf("ERR: Interface %q has no addresses?", ifaceName)
}

ipAddr := addrs[0].(*net.IPNet).IP
udpAddr := &net.UDPAddr { IP: ipAddr }
Run Code Online (Sandbox Code Playgroud)

然后使用它作为Listen的本地地址.有没有人知道如果接口的IP地址发生变化会发生什么?

linux network-programming go

1
推荐指数
1
解决办法
103
查看次数

标签 统计

go ×1

hadoop ×1

java ×1

linux ×1

network-programming ×1