zoukankan      html  css  js  c++  java
  • Hadoop的datanode,namenode无法启动

       1、读写权限出错

        首先jps检查过后只有datanode没有启动,然后去Hadoop安装目录下的logs文件中找最近一次datanode的日志

        (网上有很多种故障,建议最好自己先看看日志自己的故障是不是和别人是一样的,然后在进行排错):

     org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir:

    Incorrect permission for /home/hadoop/HadoopPseudoDistributTest/tmpdir/hdfs/data, expected: rwxr-xr-x, while actual: rwxrwxrwx

    我的是读写权限出错,用下面的命令修改

    chmod 755 /home/hadoop/HadoopPseudoDistributTest/tmpdir/hdfs/data

    附上文件修改权限讲解:

    Linux系统下如何查看及修改文件读写权限 - huiy - 博客园
    http://www.cnblogs.com/CgenJ/archive/2011/07/28/2119454.html

    2、datanode的ID出现问题

        之前自己IP(ifconfig查看)出错时导致namenode启动不起来,自己没发现,看到网上说要

      格式化namenode: bin/hadoop namenode -format

     在调用几次后,发现datanode就启动不起来了,(datanode在迅速开始后关闭有时也是这个原因)后来从网上查到原因如下:

     ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException:

     Incompatible namespaceIDs in /home/gqy/hadoop/data: namenode namespaceID = 1234444; datanode namespaceID = 23453466

           在执行文件系统格式化时,会在namenode数据文件夹(即配置文件中dfs.name.dir在本地系统的路径)中保存一个current/VERSION文件,

      记录namespaceID,标识了所格式化的 namenode的版本。如果频繁地格式化namenode,那么datanode中保存(即配置文件中dfs.data.dir在本地系统的路径)

       的current/VERSION文件只是你第一次格式化时保存的namenode的ID,因此就会造成datanode与namenode之间的id不一致。

          解决办法: 把配置文件中dfs.data.dir在本地系统的路径下的current/VERSION中的namespaceID(即datanode namespaceID = 23453466)改为与

          namenode namespaceID = 1234444(从日志里找)一样。

    3、namenode进程端口号被别的程序占用了

       也有可能是我有时没有直接stop-all.sh,直接关的:    

             命令:netstat -tunlp | grep java       查看有哪些端口被占(过滤java进程占用)

         然后用kill 进程号,重新:bin/start-all.sh,jps查看正常运行

      

     

  • 相关阅读:
    RSA
    antd 规则检查
    antd 使用总结问题
    react context prop-types
    【CSS/JS】如何实现单行/多行文本溢出的省略(...)
    react prop-types
    js 监听URL的hash变化
    Spark 读取Hadoop集群文件
    HIVE 常见函数
    Linux ANSI转 UTF8
  • 原文地址:https://www.cnblogs.com/daocaorenblog/p/5055307.html
Copyright © 2011-2022 走看看