【问题标题】:HDFS Showing 0 Blocks after cluster reboot集群重启后 HDFS 显示 0 个块
【发布时间】:2018-03-01 12:06:18
【问题描述】:

我已经设置了一个小型集群用于测试/学术建议,我有 3 个节点,其中一个节点同时充当名称节点和数据节点(以及辅助名称节点)。

我已经上传了 60GB 的文件(大约 650 万个文件)并且上传开始变得非常慢,所以我在互联网上看到我可以在主机上停止辅助 namenode 服务,目前它没有效果在任何事情上。 在我重新启动所有 3 台计算机后,我的两个数据节点显示 0 块(尽管在 Web 界面中显示磁盘使用情况),即使两个名称节点服务都在运行。 有问题的节点之一也是运行 namenode 的节点,所以我猜这不是网络问题。

关于如何让这些块再次被识别的任何想法? (无需重新开始,大约需要两周时间才能全部上传)


更新

再次重启后半小时后,日志中显示:

2018-03-01 08:22:50,212 INFO org.apache.hadoop.hdfs.server.datanode.DataNode:未成功发送块报告 0x199d1a180e357c12,包含 1 个存储报告,其中我们发送了 0 个报告。总共有 6656617 个块并使用了 0 个 RPC。生成需要 679 毫秒,RPC 和 NN 处理需要 94 毫秒。没有得到任何命令。 2018-03-01 08:22:50,212 警告 org.apache.hadoop.hdfs.server.datanode.DataNode:offerService 中的 IOException java.io.EOFException:本地主机之间的文件异常结束是:“Warpcore/192.168.15.200”;目标主机是:“warpcore”:9000; : java.io.EOFException;更多详情见:http://wiki.apache.org/hadoop/EOFException

还有 EOF 堆栈跟踪,在搜索网络后我发现了这个 [http://community.cloudera.com/t5/CDH-Manual-Installation/CDH-5-5-0-datanode-failed-to-send-a-large-block-report/m-p/34420],但仍然无法理解如何解决这个问题。 报告块太大,需要拆分,但我不知道应该如何或在哪里配置它。我在谷歌搜索...

【问题讨论】:

  • 你将 dfs.namenode.name.dir 和 dfs.datanode.data.dir 设置为什么?
  • 我将其设置为 /home/hadoop/data/datanode 我将其更改为 /home/hadoop/data/datanode, /home/hadoop/data/datanode1, /home/hadoop/data/ datanode2, /home/hadoop/data/datanode3 (....)

标签: hadoop hdfs


【解决方案1】:

问题似乎是我的 namenode 上的 RAM 不足,作为一种解决方法,我在 namenode 配置中添加了更多目录,就好像我有多个磁盘一样,并按照 cmets here 中的说明手动重新平衡文件。 由于 hadoop 3.0 分别报告每个磁盘,因此 datenode 能够报告并且我能够检索文件,这是一个丑陋的解决方法,不适用于生产,但对于我的学术目的来说已经足够了。 一个有趣的副作用是数据节点多次报告可用磁盘空间,这可能会导致生产中出现严重问题。 如herehere 所述,似乎更好的解决方案是使用 HAR 来减少块的数量

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 2018-11-23
    • 2020-07-03
    • 2020-01-08
    • 1970-01-01
    相关资源
    最近更新 更多