Ubuntu下伪分布式安装Hadoop启动后jps无NameNode等输出解决办法
Posted Z.Q.Feng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu下伪分布式安装Hadoop启动后jps无NameNode等输出解决办法相关的知识,希望对你有一定的参考价值。
项目场景
- 系统:Ubuntu20.04(也适用于低版本以及虚拟机)
- Hadoop版本:hadoop3.2.2(同理适用于其他版本)
- Hadoop安装方式:伪分布式
问题描述
在 /usr/lcoal/hadoop
目录下,使用 ./sbin/start-dfs.sh
命令启动 Hadoop 后,使用 jps
命令无 NameNode、DataNode、SecondaryNode
等输出(全部没有或部分缺失)
hadoop@Ubuntu:\\usr\\local\\hadoop$ jps
2198 Jps
7689 DataNode
原因分析
总结了一下可能有以下三种原因(可以每一种解决方法都试试,或者就自己分析 logs 文件夹里的日志分件分析):
- 配置文件出错
- 当前用户对 Hadoop 目录的操作权限不够
- Hadoop 启动时 tmp 目录初始化出错
注:这里若 NameNode、DataNode、SecondaryNode 全部没有,则大概率是第 1、2 种情况,若只有部分结点缺失,则可能是第三种情况
解决方案
1. 配置文件出错
先进入你的 Hadoop 安装目录:
cd /usr/lcoal/hadoop # 看你自己装在哪
检查 core-site.xml
配置文件:
vim ./etc/hadoop/core-site.xml
检查 <configuration></configuratipn>
里的内容和如下内容是否有出入:
<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
文件:
vim ./etc/hadoop/hdfs-site.xml
同样还是检查 <configuration></configuratipn>
里的内容和如下内容是否有出入:
<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>
有的话,修改内容后重新启动 Hadoop:
./sbin/start-dfs.sh
2. 当前用户对 Hadoop 目录的操作权限不够
输入以下命令赋予用户相关权限:
# sudo chown -R Hadoop安装目录 用户名
sudo chown -R /usr/local/hadoop hadoop
接着重新启动 Hadoop:
./sbin/start-dfs.sh
3. Hadoop 启动时 tmp 目录初始化出错
若前两种方法都不管用,可以试试这种情况,先关闭所有 HDFS 服务:
./sbin/stop-all.sh
删除 tmp 目录:
sudo rm -rf ./tmp
接着再重新启动 HDFS:
./sbin/start-dfs.sh
总结
以上是关于Ubuntu下伪分布式安装Hadoop启动后jps无NameNode等输出解决办法的主要内容,如果未能解决你的问题,请参考以下文章