【发布时间】: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 (....)