【问题解决】Hadoop集群启动后执行JPS没有DataNode或NameNode

本文分享了在搭建Hadoop集群过程中遇到的问题及其解决方法,包括格式化NameNode、启动HDFS和YARN等关键步骤,并提供了详细的命令及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

最近在尝试在搭建Hadoop集群并测试集群是否搭建成功,但是第一次格式化NameNode并启动HDFS和YARN时发现一会儿有DataNode或者NameNode但是后面就没有了,二者没有同时存在,也尝试过停止进程再重新启动都没有解决掉该问题。

相关命令

集群第一次启动,格式化NameNode

bin/hdfs namenode -format

启动HDFS

sbin/start-dfs.sh

停止HDFS

sbin/stop-dfs.sh

启动YARN

sbin/start-yarn.sh

停止YARN

sbin/stop-yarn.sh

启动历史服务器

sbin/mr-jobhistory-daemon.sh start historyserver

停止所有进程

sbin/stop-all.sh

删除文件

rm 文件名

删除文件夹及文件

rm -rf 文件夹名

问题原因

可能是配置文件出错,需要检查core-site.xml 和 hdfs-site.xml这俩文件;
可能是多次格式化NameNode,但是格式之前并没有停止之前的进程并删除相关数据。

解决方式

(1)需要检查core-site.xml 和 hdfs-site.xml;
(2)重新格式化:先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据。(具体删除方式见下面截图,亲测有效!)

  1. 删除dfs文件夹里的文件
    路径:/opt/module/hadoop-2.7.2/data/tmp/dfs
    在这里插入图片描述
  2. 删除nm-local-dir文件夹
    路径:/opt/module/hadoop-2.7.2/data/tmp
    在这里插入图片描述
  3. 删除logs文件夹里的所有文件和文件夹
    路径:/opt/module/hadoop-2.7.2/logs在这里插入图片描述
    需要在每一个集群结点上执行上述删除操作
    删除操作后,就可以重新执行格式化NameNode操作。

测试结果

节点1(NameNode):
在这里插入图片描述
节点2:
在这里插入图片描述
节点3:
在这里插入图片描述

注意

如果集群是第一次启动,需要格式化NameNode,执行一次format就行了(注意格式化之前或者重新格式化,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据),start-dfs.sh开启namenode和datanode守护进程,停止进程并退出使用stop-dfs.sh。

在contOS(可能指的是Container OS,一种基于容器的操作系统)上安装Hadoop,首先你需要确保你的系统已经配置了必要的依赖并有Docker者类似容器管理工具的支持。以下是安装Hadoop启动基本服务的基本步骤: 1. **更新包列表**: ``` sudo apt-get update ``` 2. **安装Docker** (如果尚未安装): ``` sudo apt-get install docker.io ``` 3. **拉取Hadoop Docker镜像**: ``` sudo docker pull apache/hadoop:hadoop-3.x ``` 具体版本取决于你想要的Hadoop版本(如hadoop-3.3.0)。 4. **运行Hadoop服务**: 使用`docker run`命令启动DataNodeNameNode容器,比如: ``` sudo docker run -d --name hadoop-dn -p 50010:50010 -v <your_data_path>:/data \ apache/hadoop hdfs namenode -format sudo docker run -d --name hadoop-nn -p 9000:9000 --link hadoop-dn:hdfs \ apache/hadoop yarn-d --name hadoop-datanode --link hadoop-nn:yarn \ -v <your_data_path>:/data \ apache/hadoop hdfs datanode ``` `<your_data_path>`应替换为你希望存储HDFS数据的实际路径。 5. **检查服务状态**: 使用 `docker ps` 确认容器正在运行,并使用 `jps` 来查看JVM进程是否包含NameNodeDataNode的服务进程。可能需要等待一段时间,因为服务初始化可能需要时间。 6. **验证集群健康**: 使用 `hdfs dfsadmin -report` 和 `yarn node -list` 来确认集群的状态。 7. **访问Hadoop Web UI**: 访问NameNode的Web界面:http://<your_contos_ip>:9000 完成上述步骤后,你应该就有了一个基本的Hadoop集群。然而,这只是一个基础设置,真正的生产环境还需要配置更多的安全措施和优化设置。 如果你遇到问题,可以尝试:
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wydxry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值