群集重启后HDFS显示0块

时间:2018-03-01 12:06:19

标签: hadoop hdfs

我已经为测试/学术建议设置了一个小集群,我有3个节点,其中一个节点同时充当namenode和datanode(和secondarynamenode)。

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

关于如何让这些块再次被识别的任何想法? (没有重新开始,大约花了两周时间上传所有内容)

更新

在另一次重启后半小时后,这显示在日志中:

2018-03-01 08:22:50,212 INFO org.apache.hadoop.hdfs.server.datanode.DataNode:未成功发送包含1个存储报告的块报告0x199d1a180e357c12,我们发送了0个报告。总共有6656617个块并使用了0个RPC。生成需要679毫秒,RPC和NN处理需要94毫秒。没有命令。 2018-03-01 08:22:50,212 WARN 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],但仍然无法理解如何解决这个问题。 报告块太大,需要拆分,但我不知道应该如何或在哪里配置它。我正在谷歌搜索...

1 个答案:

答案 0 :(得分:0)

问题似乎是我的namenode上的RAM很低,作为一种解决方法,我在namenode配置中添加了更多目录,好像我有多个磁盘并按照注释here的指示手动重新平衡文件。 由于hadoop 3.0分别报告每个磁盘日期节点能够报告并且我能够检索文件,这是一个丑陋的解决方法而不是用于生产,但足以满足我的学术目的。 一个有趣的副作用是datanode报告了多次可用磁盘空间,这可能导致严重的生产问题。 似乎更好的解决方案是使用HAR来减少块数量herehere