在HDFS集群中启动数据阳极时,会遇到以下错误
2016-01-06 22:54:58,064 INFO org.apache.hadoop.hdfs.server.common.Storage:存储目录DISKfile:/home/data/hdfs/dn/已被使用。2016-01-06 22:54:58,082 INFO org.apache.hadoop.hdfs.server.common.Storage:分析bpid的存储目录-1354640905-10.146.52.232-1452117061014 2016-01-06 22:54:58,083警告org.apache.hadoop.hdfs.server.common.Storage:未能分析块池BP-1354640905-10.146.52.232-1452117061014 java.io.IOException: BlockPoolSliceStorage.recoverTransitionRead:尝试加载已使用的块存储器:/home/data/hdfs/dn/java.io.IOException/BP-1354640905-10.146.52.232-1452117061014在org.apache.hadoop.hdfs.server.datanode.BlockPoolSliceStorage.loadBpStorageDirectories(BlockPoolSliceStorage.java:210) at org.apache.hadoop.hdfs.server.datanode.BlockPoolSliceStorage.recoverTransitionRead(BlockPoolSliceStorage.java:242) at org.apache.hadoop.hdfs.server.datanode.DataStorage.addStorageLocations(DataStorage.java:396) at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:477)在org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1338) at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1304) at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:314) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:226) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.运行(BPServiceActor.java:867) at java.lang.Thread.run(Thread.java:745) 2016-01-06 22:54:58,084警告org.apache.hadoop.hdfs.server.common.Storage:未能为块池添加存储: BP-1354640905-10.146.52.232-1452117061014 : BlockPoolSliceStorage.recoverTransitionRead:尝试加载已使用的块存储:org.apache.hadoop.hdfs.server.common.Storage 2016-01-06 22:5458,084个致命的org.apache.hadoop.hdfs.server.datanode.DataNode:初始化失败,因为块池(Datanode未分配)服务的主程序3/10.146.52.232:8020。正在退出。java.io.IOException:所有指定的目录都无法加载。在org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:478) at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1338) at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1304) at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:314) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake( org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:867) at java.lang.Thread.run(Thread.java:745) 2016-01-06 22:54:58,084警告org.apache.hadoop.hdfs.server.datanode.DataNode:结束块池服务,用于:块池(Datanode Uuid未分配)服务master3/10.146.52.232:8020 2016-01-06 22:54:58,084致命org.apache。hadoop.hdfs.server.datanode.DataNode:块池(Datanode未分配)服务初始化失败,主程序2/10.146.52.231:8020。正在退出。org.apache.hadoop.util.DiskChecker$DiskErrorException:无效的卷失败配置值:3在org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.(FsDatasetImpl.java:261) at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetFactory.newInstance(FsDatasetFactory.java:34) at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetFactory.newInstance(FsDatasetFactory.java:30) at org.apache.hadoop.hdfs.server。datanode.DataNode.initStorage(DataNode.java:1351) at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1304) at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:314) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:226) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:867) atorg.apache.hadoop.hdfs.server.datanode.DataNode:(Thread.java:745) 2016-01-06 22:54:58,085警告java.lang.Thread.run结束块池服务:块池(Datanode Uuid未分配)服务到主程序2/10.146.52.231:8020 2016-01-06 22:54:58,185 INFO org.apache.hadoop.hdfs.server.datanode.DataNode:已删除块池(Datanode Uuid未分配)
我已经检查了namenode和datanode中的集群ID,它们是相似的.我多次尝试重新格式化所有的东西..。谢谢你的帮助!
发布于 2016-02-05 14:04:31
当DataNode的文件系统损坏时,我在日志文件中看到了这样的消息。也许,尝试在-y所使用的每个磁盘上运行fsck DataNode。就你而言:
fsck -y /home/data/hdfs一旦磁盘清理完毕,您就可以启动DataNode了。NameNode将确保任何丢失块的复制因子都是固定的。
发布于 2016-04-12 12:05:01
我也遇到了类似的问题(但是如果没有更多的日志,我也不知道,但我的没有说"Datanode未分配“),fsck也没有解决这个问题。
在我的示例中,我将磁盘子集从一个节点移动到另一个已经有磁盘的节点,并禁用了旧节点,因此磁盘与新机器的DatanodeUuid不匹配出现了问题。
在日志中的这些行的上方,有这样的条目:
2016-04-11 19:32:02,991 WARN org.apache.hadoop.hdfs.server.common.Storage: org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /archive14/dfs/data is in an inconsistent state: Root /archive14/dfs/data: DatanodeUuid=5ba6418e-2c24-4582-8225-3e7f7fff9feb, does not match 519c1e34-a573-41f7-9e80-dca606fce704 from other StorageDirectory.为了解决这个问题,我运行了: sed -i -r "s/${olduuid}/${olduuid}/‘/挂载点*/dfs/data/current/VERSION
这将用新的UUID替换版本文件中的旧UUID。然后启动datanode就可以了。
也许在您的情况下,您有一个丢失的UUID,而不是一个错误的UUID。
发布于 2017-05-04 12:10:14
删除名称节点目录和数据节点目录,然后创建新目录为我工作。如果您将丢失数据,请使用此技术。
https://stackoverflow.com/questions/34643859
复制相似问题