zoukankan      html  css  js  c++  java
  • hadoop启动后jps查不到namenode的解决办法

    hadoop启动后jps查不到namenode的解决办法

     原文转载至:https://www.cnblogs.com/lishpei/p/6136043.html

    最近由于项目需要开始接触hadoop,在配置伪分布式启动后,jps查询进程发现少了namenode,而DataNode却存在。

    下面是我的core-site.xml和hdfs-site.xml配置:

    core-site.xml

    复制代码
    <configuration>
            <property>
                 <name>hadoop.tmp.dir</name>
                 <value>file:/usr/local/hadoop/tmp</value>
                 <description>Abase for other temporary directories.</description>
            </property>
            <property>
                 <name>fs.defaultFS</name>
                 <value>hdfs://localhost:9000</value>
            </property>
    </configuration>
    复制代码

    hdfs-site.xml

    复制代码
    <configuration>
            <property>
                 <name>dfs.replication</name>
                 <value>1</value>
            </property>
            <property>
                 <name>dfs.namenode.name.dir</name>
                 <value>file:/usr/local/hadoop/tmp/dfs/name</value>
            </property>
            <property>
                 <name>dfs.datanode.data.dir</name>
                 <value>file:/usr/local/hadoop/tmp/dfs/data</value>
            </property>
    </configuration>
    复制代码

    启动过程:

    执行 NameNode 的格式化:
    hadoop@hadoop:/usr/local/hadoop$ ./bin/hdfs namenode -format
    启 NameNode 和 DataNode 守护进程。
    hadoop@hadoop:/usr/local/hadoop$ ./sbin/start-dfs.sh

    启动过程没有发现错误,但是jps查看进程时,发现少了NameNode,而DataNode却存在:

    复制代码
    hadoop@hadoop:/usr/local/hadoop$ jps
    907 ResourceManager
    1112 NodeManager
    3627 Jps
    725 SecondaryNameNode
    552 DataNode
    复制代码

    首先google了一下,网上看了几个方法没有解决。

    干脆看启动日志,我们从启动脚本打印的日志可知启动NameNode的日志是放在hadoop下的logs目录下,进入这个目录可发现有一个hadoop-namenode.log(名字貌似根据用户名而定:格式如×××namenode×××.log),打开这个日志文件发现有这么一段:

    原来是端口9000已经被占用,解决办法有两个,第一种:查找占用端口的进程,kill掉它。如果已占用进程需要使用9000端口,可用第二种方法:修改core-site.xml文件,把9000改成其他如9001.

    我用的是第一种方法,首先找出占用9000端口的进程,然后kill掉它

    hadoop@hadoop:~$ sudo netstat -anp|grep 9000
    tcp6 0 0 127.0.0.1:9000 127.0.0.1:43620 ESTABLISHED 7056/eclipse

    hadoop@hadoop:~$ sudo kill -9 7056

    最后重新执行启动脚本,jps就可以看到NameNode了,http://localhost:50070/也可以访问。

    复制代码
    hadoop@hadoop:/usr/local/hadoop/sbin$ ./sbin/start-dfs.sh
    hadoop@hadoop:/usr/local/hadoop/sbin$ jps
    907 ResourceManager
    1112 NodeManager
    4240 Jps
    2704 NameNode
    725 SecondaryNameNode
    552 DataNode
    复制代码
  • 相关阅读:
    java 日期的格式化
    JAVA 线程
    java 异常
    java 内部类
    java 多态
    SpringBoot(12) SpringBoot创建非web应用
    SpringCloud(1) 架构演进和基础知识简介
    SpringBoot(11) SpringBoot自定义拦截器
    SpringBoot(10) Servlet3.0的注解:自定义原生Servlet、自定义原生Listener
    SpringBoot(9) SpringBoot整合Mybaties
  • 原文地址:https://www.cnblogs.com/mkl34367803/p/10261435.html
Copyright © 2011-2022 走看看