【问题标题】:I can't access to Hadoop Web Interface (DataNode, ResourceManager)我无法访问 Hadoop Web 界面(DataNode、ResourceManager)
【发布时间】:2018-09-23 07:40:07
【问题描述】:

我已经使用伪分布式模式安装了 Hadoop 3.1.1。我尝试访问 Hadoop Web 界面,NameNode(Server's public IP:9870) 和 JobHistoryServer(public IP:19888) UI 都打开了,但是 DataNode(public IP:9864)、ResourceManager(public IP:8088) UI 被阻止了。

但是,当我输入命令jps 时,DataNode 和 ResourceManager 仍在工作。此外,日志文件中没有任何特殊的错误消息。

我想知道是什么问题。

大师:

localhost

奴隶:

localhost

hdfs-site.xml:

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>(Hadoop Home Dir)/hdata/dfs/namenode</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>(Hadoop Home Dir)/hdata/dfs/datanode</value>
  </property>
  <property>
    <name>dfs.datanode.http.address</name>
    <value>localhost:9864</value>
  </property>
</configuration>

core-site.xml:

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>(Hadoop Home Dir)/hdata</value>
  </property>
</configuration>

ma​​pred-site.xml:

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

yarn-site.xml:

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>localhost</value>
  </property>
  <property>
    <name>yarn.web-proxy.address</name>
    <value>localhost:8089</value>
  </property>
</configuration>

ResourceManager 日志:

2018-09-23 17:09:07,192 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting ResourceManager
STARTUP_MSG:   host = ubuntu-1cpu-40gb_ssd-2gb_ram-2tb_bw/127.0.1.1
STARTUP_MSG:   args = []
STARTUP_MSG:   version = 3.1.1

【问题讨论】:

  • 什么是操作系统?
  • @SoheilPourbafrani 这是 Ubuntu 18.04 LTS。
  • 你能分享一下resourceManager的日志吗?
  • 您也可以尝试将值为localhost:8088 的属性yarn.resourcemanager.webapp.address 添加到yarn-site.xml 文件并删除属性yarn.web-proxy.address。
  • 如果 XML 中的任何值为 localhost,则说明您没有使用伪分布式模式。它必须是 hostname -f 的值。与所有从属和主文件类似。另外,(Hadoop Home Dir) 应该是真实的文件路径

标签: hadoop


【解决方案1】:

我已经修改了如下配置文件,现在 6 个进程和 Web 界面运行良好。

/etc/hosts(本地 PC/WSL)

127.0.0.1                localhost
(Server's external IP)   (Server's hostname)

127.0.1.1 需要删除。

大师:

(Server's external IP)

奴隶:

(Server's external IP)

工人:

(Server's external IP)

hdfs-site.xml:

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>(Hadoop Home Dir)/hdata/dfs/namenode</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>(Hadoop Home Dir)/hdata/dfs/datanode</value>
  </property>
</configuration>

core-site.xml:

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>(Hadoop Home Dir)/hdata</value>
  </property>
</configuration>

ma​​pred-site.xml:

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

yarn-site.xml:

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
</configuration>

【讨论】:

  • 您仍然在 XML 中有 localhost。可能是问题。您可以为数据节点使用内部 IP,但 Web 服务需要使用外部地址
  • @cricket_007 不,如果我更改它,NameNode 将无法启动。所以我把 localhost 留在了core-site.xml。
  • 但是如果你不把它改成别的东西,你会得到 0 个数据节点,所以在某些时候它必须是一个不同的值
  • @cricket_007 我刚刚格式化了 Hadoop 数据目录,并且出现了一个实时的DataNode。但是它的HTTP地址是(Server hostname):9864所以出现Connection Refused错误。我可以强制DataNode 使用 IP 而不是主机名访问 web ui 吗?如果我通过服务器的外部 IP 地址访问它就很好。
  • 终于找到了问题所在。我忘记了我使用的是 WSL,而不是原生 Linux。我已经修改了 Windows 和 WSL 的 /etc/hosts,所以现在我可以通过服务器的主机名访问 Web 界面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-16
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
  • 2021-08-25
  • 2017-11-08
相关资源
最近更新 更多