简述:NameNode 是 HDFS 的主节点,是负责管理整个 HDFS 集群的,相当于一个团队的老大,若没有启动,则不会进入web界面等。
问题描述:
使用start-dfs.sh启动集群,然后使用jps查看进程时发现没有namenode或没有datanode。但是SecondaryNameNode、ResourceManager、NodeManage等。
分析:
- namenode进程没有启动。在运行Hadoop集群之前,需要确保启动了namenode进 程,否则jps命令不会显示该进程。可以使用start-dfs.sh命令来启动Hadoop集群。
- namenode进程已经停止或崩溃。如果namenode进程由于某些原因停止或崩溃了,那么jps命令将不会显示该进程。可以检查namenode的日志文件,查看是否有任何错误或异常信息。
解决办法:
1. 删除使用hdfs namenode -format格式化后产生data、logs文件夹,并重建,注意所新建的目录必须是配置文件tmp中所对应的,而且如果是多台虚拟机,每台虚拟机都需要进行这样的操作,最后再到主节点重新格式化。
步骤如下
进入hadoop目录下,使用rm -rf 命令删除data和logs
使用mkdir命令重建data和logs,注意是当前目录
所有节点都需要进行这样的操作,之后才能通过hdfs namenode -format格式化
格式化之后使用./start-all.sh启动集群,并通过jps查看进程
此时节点的进程正常,即可正常运行
2. 查找占用端口的进程,kill掉它。
netstat -anp|grep 端口号
kill -9 7056(7056是进程号)
最后重新启动集群
也可通过修改core-site.xml文件,把端口号改成其他(具体端口根据需求进行修改)