【问题标题】:Hadoop UI shows only one DatanodeHadoop UI 仅显示一个 Datanode
【发布时间】:2015-07-29 10:41:48
【问题描述】:

我已经启动了由主节点和 4 个从节点组成的 hadoop 集群。

配置似乎没问题:

hduser@ubuntu-amd64:/usr/local/hadoop$ ./bin/hdfs dfsadmin -report

当我进入 NameNode UI (http://10.20.0.140:50070/) Overview 卡似乎没问题 - 例如所有节点的总容量总和。

问题是在卡Datanodes我只看到一个datanode。

【问题讨论】:

  • 您使用的是哪个发行版和 Hadoop 版本?请检查日志文件(NameNode 和 DataNodes)是否报错 stackTrache。
  • 能否请您从任何 hadoop 节点复制此“hadoop dfsadmin -report”的结果。
  • @ruby hadoop dfsadmin id 已弃用,您在我的帖子中有指向 hdfs dfsadmin -report 结果的链接。
  • 这看起来绝对没问题,除了 UI 中的小故障。谢谢
  • 在 hadoop 2.7.3 上有同样的问题

标签: hadoop


【解决方案1】:

我遇到了同样的问题,幸运的是,我解决了。我猜它是由“本地主机”引起的。

  1. 在 /etc/host 中为这些 IP 配置不同的名称
  2. 记得重启所有机器,一切都会好起来的。

【讨论】:

    【解决方案2】:

    这是因为两个数据节点中的 主机名 相同。 在您的情况下,两个数据节点都使用相同的主机名注册到名称节点,即“localhost”尝试使用不同的主机名,它将解决您的问题。

    UI中,它只会显示一个主机名条目。

    "hdfs dfsadmin -report" 输出中你可以看到两者。

    【讨论】:

    • 嗨,我在 k8s 中也遇到了同样的问题。 hdfs dfsadmin -admin 仅随机显示一个数据节点,例如有时是datanode-0,有时是datanode-1。 Datanodes 主机名是不同的 datanode-0,datanode-1 但它们的名称相同(127.0.0.1:9866(localhost))。这可能是问题吗?如果是,如何解决
    【解决方案3】:

    以下提示可能对您有所帮助

    1. 检查core-site.xml,确保namenode主机名正确
    2. 检查namenode和datanodes中的防火墙规则,确保所需端口已打开
    3. 查看数据节点的日志
    4. 确保所有数据节点都已启动并运行

    【讨论】:

      【解决方案4】:

      正如@Rahul 所说,问题是因为相同的主机名

      /etc/hostname 文件中更改您的主机名,并为每个主机提供不同的主机名 并使用 IP 地址解析主机名 /etc/hosts 文件

      然后重新启动集群,您将在浏览器的 Datanode 信息选项卡中看到所有数据节点

      【讨论】:

        【解决方案5】:

        我有同样的麻烦,因为我使用ip 而不是hostname[hdfs dfsadmin -report] 是正确的,尽管它只是 UI 中的一个 [localhost]。最后,我这样解决了:

        <property>
               <name>dfs.datanode.hostname</name>                   
               <value>the name you want to show</value>
        </property>
        

        你几乎在任何文件中都找不到它......

        【讨论】:

        • 嗨,我在 k8s 中也遇到了同样的问题。 hdfs dfsadmin -admin 仅随机显示一个数据节点,例如有时是datanode-0,有时是datanode-1。 Datanodes 主机名是不同的 datanode-0,datanode-1 但它们的名称相同(127.0.0.1:9866(localhost))。这可能是问题吗?如果是,如何解决
        【解决方案6】:

        抱歉,感觉好像过了一段时间。但我仍然想分享我的答案: 根本原因来自 hadoop/etc/hadoop/hdfs-site.xml: xml 文件有一个名为 dfs.datanode.data.dir 的属性。如果您将所有数据节点设置为同名,则 hadoop 假设集群只有一个数据节点。因此,正确的做法是用唯一的名称命名每个数据节点:

        问候, 云汉轩

        【讨论】:

          【解决方案7】:

          您的管理报告看起来非常好。请运行以下命令检查 HDFS 磁盘空间详细信息。

          "hdfs dfs -df /"

          如果您仍然看到尺寸不错,那只是 UI 故障。

          【讨论】:

            【解决方案8】:

            我的问题:我有 1 个主节点和 3 个从节点。当我通过 start-all 启动所有节点时。 sh 并访问主节点的仪表板。我只能在 Web UI 上看到一个数据节点。

            我的解决方案:

            1. 尝试通过 sudo systemctl stop firewalld 暂时停止防火墙。如果您不想停止 firewalld 服务,那么 r 允许数据节点的端口通过 sudo firewall-cmd --permanent --add-port{PORT_Number/tcp,PORT_number2/tcp}; sudo firewall-cmd --reload
            2. 如果您在我的情况下使用 Hadoop 的 sapretae 用户,我使用 hadoop 用户来管理 hadoop 守护程序,然后更改您的 dataNode 和 nameNode 文件的所有者。 sudo chown hadoop:hadoop /opt/data -R

            我的 hdfs-site.xml 配置如图所示

            1. 通过 jps 命令检查数据节点上的守护进程。它应该如下图所示。

            jps 输出

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2014-12-15
              • 1970-01-01
              • 2019-05-23
              • 1970-01-01
              • 1970-01-01
              • 2022-12-22
              • 2014-12-02
              相关资源
              最近更新 更多