不兼容的clusterID Hadoop swarm

时间:2018-05-17 08:00:22

标签: hadoop bigdata cluster-computing docker-swarm

任何时候我重新启动群我都有这个问题

java.io.IOException: Incompatible clusterIDs in /hadoop/dfs/data: 
namenode clusterID = CID-b25a0845-5c64-4603-a2cb-d7878c265f44; 
datanode clusterID = CID-f90183ca-4d87-4b49-8fb2-ca642d46016c at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:777)

FATAL datanode.DataNode: Initialization failed for Block pool <registering> 
(Datanode Uuid unassigned) service to namenode/10.0.0.7:8020. Exiting.  
java.io.IOException: All specified directories are failed to load.  at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:574)

我通过删除此泊坞窗卷来解决了这个问题

  

sudo docker volume inspect hadoop_datanode

[
    {
        "CreatedAt": "2018-05-10T19:35:31Z",
        "Driver": "local",
        "Labels": {
            "com.docker.stack.namespace": "hadoop"
        },
        "Mountpoint": "/data0/docker_var/volumes/hadoop_datanode/_data",
        "Name": "hadoop_datanode",
        "Options": {},
        "Scope": "local"
    }
]

但是在这个卷中存在我放入hdfs的文件,所以这样,我必须在部署swarm时再将文件放入hdfs。我不确定这是解决这个问题的正确方法。 谷歌搜索我找到了一个解决方案,但我不知道如何在群重启之前应用它,这是解决方案:

  

问题在于属性名称为dfs.datanode.data.dir,它是dfs.dataode.data.dir的拼写错误。这会使属性失效   被识别,因此,默认位置   $ {hadoop.tmp.dir} / hadoop - $ {USER} / dfs / data用作数据目录。   hadoop.tmp.dir默认是/ tmp,每次重启时都是内容   此目录将被删除并强制datanode重新创建   启动时的文件夹。因此不兼容的clusterID。编辑这个   格式化namenode之前的hdfs-site.xml中的属性名称   启动服务。

我使用这个docker hub作为namenode: bde2020 / Hadoop的名称节点:2.0.0-hadoop2.7.4-java8

这对于datanode: bde2020 / Hadoop的数据节点:2.0.0-hadoop2.7.4-java8

感谢。

0 个答案:

没有答案
相关问题