Hadoop:如何从外部IP访问HDFS?

时间:2020-04-14 21:40:46

标签: hadoop hdfs remote-access

在内部(即内部网络;专用IP地址到专用IP地址),我可以使用以下命令访问我的HDFS:

hdfs dfs -ls hdfs://#.#.#.#/

但是,当我在HDFS名称节点所驻留的网络外部的计算机上尝试相同的操作时(显然使用名称节点计算机的WAN IP而不是其LAN IP),我得到:

ls: DestHost:destPort ec2-▒-▒-▒-▒.compute-1.amazonaws.com:8020 , LocalHost:localPort mymachine/127.0.0.1:0. Failed on local exception: java.io.IOException: Connection reset by peer

namenode日志显示为:

INFO org.apache.hadoop.ipc.Server: Socket Reader #1 for port 8020: readAndProcess from client ▒.▒.▒.▒:▒ threw exception [java.io.IOException: Connection reset by peer]
java.io.IOException: Connection reset by peer
        at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
        at sun.nio.ch.IOUtil.read(IOUtil.java:197)
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:377)
        at org.apache.hadoop.ipc.Server.channelRead(Server.java:3486)
        at org.apache.hadoop.ipc.Server.access$2600(Server.java:138)
        at org.apache.hadoop.ipc.Server$Connection.readAndProcess(Server.java:2144)
        at org.apache.hadoop.ipc.Server$Listener.doRead(Server.java:1389)
        at org.apache.hadoop.ipc.Server$Listener$Reader.doRunLoop(Server.java:1245)
        at org.apache.hadoop.ipc.Server$Listener$Reader.run(Server.java:1216)

我的core-site.xml读为:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://0.0.0.0:8020</value>
    </property>
</configuration>

请注意,我还尝试将fs.defaultFS的值设置为hdfs://#.#.#.#:8020。我还尝试将其设置为hdfs://hadoophost:8020,并将#.#.#.# hadoophost添加到/etc/hosts的顶部。 (在这两种情况下,#.#.#.#显然都是名称节点计算机的LAN IP。)结果是相同的。

我的hdfs-site.xml读为:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.name.dir</name>
        <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
    </property>
</configuration>

请注意,我可以在端口telnet上从外部8020到名称节点的机器上。

启用外部访问Hadoop文件系统时需要缺少哪些设置?

0 个答案:

没有答案