• 自己搭建的集群,启动hadoop时slave节点的datanode没有启起来怎么办?


    自己搭建的集群,启动hadoop 集群是,发现slave节点的datanode没有启动,查了资料发现是因为我在启动集群前,执行了这个命令:

    hadoop namenode -format
    

    这个指令会重新格式化namenode的信息,这样可能会导致master节点的VERSION信息跟datanode的信息对不上,导致指令无法同步。

    查看VERION信息:

    master 的 namenode 信息:
    > cd /usr/local/src/hadoop-2.6.1/dfs/name/current
    > cat VERSION 
    #Tue Aug 18 01:43:38 EDT 2020
    namespaceID=1008709700
    clusterID=CID-c3345186-922b-4010-bb38-cdc135bc1afe
    cTime=0
    storageType=NAME_NODE
    blockpoolID=BP-266453957-192.168.56.10-1597729418207
    layoutVersion=-60
    
    slave 的 datanode信息
    > cd /usr/local/src/hadoop-2.6.1/dfs/data/current
    > cat VERSION
    #Sat Aug 24 04:47:43 EDT 2019
    storageID=DS-40ea875f-c037-49d3-b6e9-da8e9ff1d4eb
    clusterID=CID-adbba37c-a4d3-4b60-8d1b-3ac22ee863df
    cTime=0
    datanodeUuid=d7f1a2f9-4604-4bf1-a1c7-90d553fb62b8
    storageType=DATA_NODE
    layoutVersion=-56
    
    

    可以看到,namenode 和 datanode 的 clusterID 不一样,可以认为两者所在的集群是一样的。

    这时有一个解决办法,在我这个场景下测试过有效:

    第一步:停止集群:
    > ./hadoop-2.6.1/sbin/stop-all.sh
    
    第二步:删除logs文件夹和tmp文件夹
    > rm -rf /hadoop-2.6.1/logs
    > rm -rf /hadoop-2.6.1/tmp
    
    第三步:查看VERSION文件是否存在,如果存在的话,把它删除:
    > cd /hadoop-2.6.1/dfs/name/current
    > ls -l
    如果有VERSION文件,直接删除:
    > rm -f VERSION
    
    第四步:所有slave节点删除VERSION文件
    > cd /usr/local/src/hadoop-2.6.1/dfs/data/current
    > rm -f VERSION
    
    第五步:格式化namenode
    >  namenode -format
    这一步如果不执行的话,直接启动集群会导致master节点没有namenode
    
    第六步:启动集群
    > ./hadoop-2.6.1/sbin/start-all.sh
    
    第七步:查看是否各个进程都启起来了:
    master:
    > jps
    16595 Jps
    16216 RunJar
    15595 NameNode
    15917 ResourceManager
    
    slave :
    > jps 
    8369 NodeManager
    8492 Jps
    8271 DataNode
    
    第8步,查看master和slave节点的VERSION
    master:
    > cat VERSION
    #Tue Aug 18 01:59:54 EDT 2020
    namespaceID=2000705856
    clusterID=CID-5e8393c4-8eec-4f49-8be2-5935c1e215d7
    cTime=0
    storageType=NAME_NODE
    blockpoolID=BP-1566447260-192.168.56.10-1597730394165
    layoutVersion=-60
    
    > cat VERSION
    #Tue Aug 18 02:01:23 EDT 2020
    storageID=DS-d47a197e-c210-4dac-bc78-dfd1c4338bb2
    clusterID=CID-5e8393c4-8eec-4f49-8be2-5935c1e215d7
    cTime=0
    datanodeUuid=1c8cea38-f6ad-415b-bf53-8e47bd7bacf8
    storageType=DATA_NODE
    layoutVersion=-56
    

    这样就可以了

  • 相关阅读:
    Android BitmapUtils工具类
    Android 获取网络类型
    Android 打开文件或文件夹777权限
    Android 获取颜色RGB值
    Android常用数据类型转换
    本周总结
    利用Volley框架实现简单的Android与servlet信息交互
    response.getWriter().write("")中文乱码问题
    软件工程开课博客
    java读取中文文本文件乱码问题
  • 原文地址:https://www.cnblogs.com/bigband/p/13522883.html
Copyright © 2020-2023  润新知