我已经为测试/学术建议设置了一个小集群,我有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],但仍然无法理解如何解决这个问题。 报告块太大,需要拆分,但我不知道应该如何或在哪里配置它。我正在谷歌搜索...