Hadoop start-dfs.sh启动后jps没显示进程,已解决!!!

困扰我很多天的jps进程不显示问题终于解决了!!!

问题如下:

配置完Hadoop文件之后启动Hadoop显示启动成功,但是jps查看不到进程。如图所示(jps应启动 namenode datanode secondary namenodes 三个进程,但是一个也没有)
在这里插入图片描述

解决方法:

之前也在网上搜索了很多方法但是对于我的虚拟机来说都不适用。为此我还重新创建了一个虚拟机,仍然出现同样的问题,一度怀疑虚拟机有问题,原来还是自己的问题!
是我Hadoop里的core-site.xml文件里面的配置出现了问题。

1.修改core-site.xml文件

错误的是
在这里插入图片描述
修改之后是
在这里插入图片描述

2.删除运行过的未成功的目录,再重新创建

(根据自己hdfs-site.xml文件中配置的文件路径创建新目录)
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3.格式化:hdfs namenode -format

在这里插入图片描述

4.start-dfs.sh启动hadoop并jps查看进程

结果展示
在这里插入图片描述
终于成功啦!

PS:

查看IP: ip a
查看虚拟机名字:cat etc/hostname

在这里插入图片描述
其中容易出错的是value里面的nmjtest(虚拟机名字)
原因:
这个创建虚拟机之初系统/etc/hosts里面的默认ip是127.0.1.1 名字是localhost
在这里插入图片描述后面经过配置换位置等其他因素导致虚拟机IP改变时需要修改为指定IP。例
在这里插入图片描述

此时的IP名字都已改变
因而Hadoop中core-site.xml内容也要改变。

<think>嗯,用户遇到了Hadoop集群启动DataNode没有正常启动的问题。首先,我需要回忆一下Hadoop集群启动的常见问题。根据用户提供的引用内容,主要可能涉及集群ID不一致、权限问题、数据目录锁定或损坏,以及网络配置错误。 首先,集群ID不一致的情况。在引用[2]中提到,namenode和datanode的clusterID不匹配,导致datanode无法启动。这时候应该检查VERSION文件中的clusterID,确保所有节点的ID一致。可能需要重新格式化namenode,但要注意备份数据。 然后是权限问题。引用[4]提到使用sudo删除锁文件后,在普通用户下重新操作解决了权限问题。这说明用户可能在某些目录下没有正确的权限,导致datanode无法写入数据。需要检查数据目录的所属用户和组,确保与启动Hadoop的用户一致。 接下来是数据目录被锁定或损坏的问题。如果之前非正常关闭,可能导致pid文件残留,或者数据目录损坏。需要检查日志中的相关错误,删除锁文件,并清理数据目录后重新启动。 网络配置错误也可能导致datanode无法与namenode通信。检查防火墙设置,确认端口是否开放,比如50010、50020等。同时,查看hosts文件,确保主机名和IP地址映射正确。 另外,用户可能没有仔细查看日志文件,引用[3]强调检查日志的重要性。日志通常会明确提示错误原因,比如权限被拒绝或者ID不匹配。指导用户查看datanode的日志文件,可以帮助他们更快定位问题。 最后,用户可能是在多节点环境中操作,需要确保所有子节点的配置正确,特别是hdfs-site.xml和core-site.xml中的namenode地址是否正确。此外,SSH无密码登录是否配置妥当,避免启动时出现认证问题。 总结下来,解决步骤应该是先检查日志,确认具体错误信息;然后依次排查集群ID、权限、数据目录、网络配置等问题。需要给出具体的命令,比如查看日志的路径,修改clusterID的方法,检查权限的命令等,帮助用户一步步解决问题。</think>### Hadoop集群DataNode未启动的排查步骤 #### 一、检查日志定位问题 1. **查看DataNode日志** 在子节点执行以下命令查看最新报错信息: ```bash tail -n 100 $HADOOP_HOME/logs/hadoop-<username>-datanode-<hostname>.log ``` 若日志出现`Incompatible clusterIDs`错误(如引用[2]所述),说明namenode与datanode的集群ID不一致。 2. **对比集群ID** - namenode的ID路径:`$HADOOP_HOME/dfs/name/current/VERSION` - datanode的ID路径:`$HADOOP_HOME/dfs/data/current/VERSION` 手动修改datanode的`VERSION`文件中的`clusterID`与namenode保持一致,或删除数据目录后重新初始化。 #### 二、权限问题排查 1. **检查数据目录权限** 执行以下命令确保数据目录归属正确(假设使用`hadoop`用户启动): ```bash chown -R hadoop:hadoop /root/hadoop/dfs/data # 根据实际路径修改 ``` 引用[4]中因权限问题导致进程无法创建文件,需避免使用`sudo`操作Hadoop目录。 2. **清理锁文件** 若日志提示`Lock held by another process`,删除残留的`in_use.lock`文件: ```bash rm -f $HADOOP_HOME/dfs/data/*/in_use.lock ``` #### 三、集群配置验证 1. **检查网络连通性** - 确保子节点能ping通namenode的IP和主机名 - 验证关键端口是否开放(如`9000`、`50010`): ```bash telnet namenode_ip 9000 ``` 2. **配置文件一致性** - 确认所有节点的`hdfs-site.xml`中`dfs.datanode.data.dir`路径一致 - 检查`core-site.xml`中`fs.defaultFS`指向正确的namenode地址 #### 四、特殊场景处理 1. **格式化namenode后的影响** 若重新格式化过namenode(会生成新clusterID),必须**先删除所有datanode数据目录**再启动,否则会触发ID冲突[^2]。 2. **多节点部署注意事项** - 确保所有子节点已安装相同版本的Hadoop - 检查`slaves`文件包含正确的子节点主机名 - 验证SSH免密登录是否配置成功
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值