hadoop启动后jps查不到namenode的解决办法 |
您所在的位置:网站首页 › namenode和datanode无法启动怎么办 › hadoop启动后jps查不到namenode的解决办法 |
最近由于项目需要开始接触hadoop,在配置伪分布式启动后,jps查询进程发现少了namenode,而DataNode却存在。 下面是我的core-site.xml和hdfs-site.xml配置: core-site.xml hadoop.tmp.dir file:/usr/local/hadoop/tmp Abase for other temporary directories. fs.defaultFS hdfs://localhost:9000hdfs-site.xml dfs.replication 1 dfs.namenode.name.dir file:/usr/local/hadoop/tmp/dfs/name dfs.datanode.data.dir file:/usr/local/hadoop/tmp/dfs/data
启动过程: 执行 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 9000tcp6 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
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |