• hadoop启动中缺少datanode


    // 启动 journalnode(在所有 datanode 上执行,也就是 cluster1, cluster2, cluster3)

    $ hadoop-daemon.sh start journalnode 启动后使用 jps 命令可以看到 JournalNode 进程

    // 格式化 HDFS(在 cluster1 上执行)

    $ hdfs namenode -format

    // 格式化完毕后可关闭 journalnode(在所有 datanode 上执行)

    $ hadoop-daemon.sh stop journalnode

    // 启动 HDFS(cluster1 上)

    $ start-dfs.sh

    // 启动后 cluster1 上使用 jps 可以看到 NameNode, DataNode, SecondaryNameNode cluster2 和 cluster3 上可以看到 DataNode

    $ jps

    -----------------------------------------------------------------------------------------------------------------------------------------

    结果,cluster1 上使用 jps 看到 NameNode, SecondaryNameNode cluster2 和 cluster3 上什么都没看到!!!!

    原因是:

    当我们使用hadoop namenode -format格式化namenode时,会在namenode数据文件夹(这个文件夹为自己配置文件中dfs.name.dir的路径)中保存一个current/VERSION文件,记录clusterID,datanode中保存的current/VERSION文件中的clustreID的值是上一次格式化保存的clusterID,这样,datanode和namenode之间的ID不一致。

    也就是只能格式化一次,以后不用格式化了!!!

    解决方法:

    删除后,重新格式化一次,再启动,就可以看到了!

  • 相关阅读:
    C# 单元测试
    支持库:DateTime扩展
    根据枚举名称创建枚举
    支持库:String扩展
    数组的几道面试题转
    java推荐书籍及下载
    Python天天美味(总) 转
    python 实现文件的递归拷贝转
    关于python文件操作转
    JDK源码分析收藏地址
  • 原文地址:https://www.cnblogs.com/bao-ZhangJiao/p/14268767.html
Copyright © 2020-2023  润新知