Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 块池初始化失败<;注册>;(数据节点Uuid未分配)_Java_Hadoop_Hdfs_Uuid_Disk - Fatal编程技术网

Java 块池初始化失败<;注册>;(数据节点Uuid未分配)

Java 块池初始化失败<;注册>;(数据节点Uuid未分配),java,hadoop,hdfs,uuid,disk,Java,Hadoop,Hdfs,Uuid,Disk,此错误的来源是什么?如何修复 2015-11-29 19:40:04,670 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to anmol-vm1-new/10.0.1.190:8020. Exiting. java.io.IOException:

此错误的来源是什么?如何修复

2015-11-29 19:40:04,670 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to anmol-vm1-new/10.0.1.190:8020. Exiting.
java.io.IOException: All specified directories are not accessible or do not exist.
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:217)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:254)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:974)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:945)
        at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:278)
        at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:220)
        at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:816)
        at java.lang.Thread.run(Thread.java:745)
2015-11-29 19:40:04,670 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool <registering> (Datanode Uuid unassigned) service to anmol-vm1-new/10.0.1.190:8020
2015-11-29 19:40:04,771 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool <registering> (Datanode Uuid unassigned)
2015-11-29 19:40:04670 FATAL org.apache.hadoop.hdfs.server.datanode.datanode:anmol-vm1-new/10.0.1.190:8020的块池(datanode Uuid unassigned)服务初始化失败。退出。
java.io.IOException:所有指定的目录都不可访问或不存在。
位于org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:217)
位于org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:254)
位于org.apache.hadoop.hdfs.server.datanode.datanode.initStorage(datanode.java:974)
位于org.apache.hadoop.hdfs.server.datanode.datanode.initBlockPool(datanode.java:945)
位于org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:278)
位于org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connecttonandhandshake(BPServiceActor.java:220)
位于org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:816)
运行(Thread.java:745)
2015-11-29 19:40:04670 WARN org.apache.hadoop.hdfs.server.datanode.datanode:终止块池服务:块池(datanode Uuid未分配)服务到anmol-vm1-new/10.0.1.190:8020
2015-11-29 19:40:04771 INFO org.apache.hadoop.hdfs.server.datanode.datanode:删除的块池(datanode Uuid未分配)

我遇到了同样的问题,并通过执行以下步骤解决了它:

步骤1。删除
hdfs
目录(对我来说,它是默认目录“
/tmp/hadoop root/
”)

第2步。运行

bin/hdfs namenode -format

要格式化目录,根本原因是datanode和namenode clusterID不同,请将它们与namenode clusterID统一,然后重新启动hadoop,然后应该解决它。

有两种可能的解决方案

第一名:

您的namenode和datanode群集ID不匹配,请确保它们相同

在名称节点中,更改位于以下位置的文件中的ur群集id:

$ nano HADOOP_FILE_SYSTEM/namenode/current/VERSION 
在数据节点中,群集id存储在文件中:

$ nano HADOOP_FILE_SYSTEM/datanode/current/VERSION
秒:

设置namenode的格式:

Hadoop 1.x: $ hadoop namenode -format

Hadoop 2.x: $ hdfs namenode -format

出现此问题的原因是datanode和namenode的群集ID不匹配

遵循以下步骤:

  • 转到Hadoop_home/data/namenode/CURRENT并从“VERSION”复制集群ID
  • 转到Hadoop_home/data/datanode/CURRENT并将此集群ID粘贴到“VERSION”中,替换当前的集群ID
  • 然后格式化namenode
  • 再次启动datanode和namenode

  • 出现此问题的原因是datanode和namenode的群集ID不匹配

    遵循以下步骤:

    1-转到Hadoop_主页/删除文件夹数据

    2-创建名称为data123的文件夹

    3-创建两个文件夹namenode和datanode

    4-进入hdfs站点并通过您的路径

    dfs.namenode.name.dir
    ……数据123/名称节点
    dfs.datanode.data.dir
    ………/data123/datanode
    

    .

    当存在某些存储i/o错误时,可能会发生此问题。在这种情况下,版本文件不可用,因此出现上述错误。 您可能需要在
    hdfs site.xml

    中排除那些坏驱动器上的存储位置。对于我来说,这很有效-

  • 删除(或备份)HADOOP\u文件\u SYSTEM/namenode/current目录
  • 重新启动datanode服务
  • 这将再次创建当前目录,并在版本文件中使用正确的clusterID


    Source-

    我实际上已经这样做了,并且删除了我的datanode和namenode目录(在hdfs-site.xml文件中分配)。只是确定你在谈论哪个hadoop目录以及它在哪里?它只是在hdfs-site.xml中分配的目录。
    Hadoop 1.x: $ hadoop namenode -format
    
    Hadoop 2.x: $ hdfs namenode -format
    
     <name>dfs.namenode.name.dir</name>
    <value>........../data123/namenode</value>
    
        <name>dfs.datanode.data.dir</name>
    <value>............../data123/datanode</value>