0
点赞
收藏
分享

微信扫一扫

解决Hadoop namenode无法启动以及修改hdfs的存放位置

孟佳 2022-03-16 阅读 76


重启计算机之后,遇到了一个问题,执行start-all.sh之后,执行JPS命令,发现namenode没有启动。

每次开机都得重新格式化一下namenode才可以。

原因:

hadoop.tmp.dir是hadoop文件系统依赖的基础配置,很多路径都依赖它。它默认的位置是在/tmp/{$user}下面,但是在/tmp路径下的存储是不安全的,默认的/tmp文件每次重新开机会被清空,与此同时namenode的格式化信息就会丢失。

于是我们得重新配置一个tmp文件目录。

首先在hdp用户目录下建立一个hadoop_tmp目录:​​sudo mkdir ~/hadoop_tmp​

由于刚才是创建的时候,文件夹所属用户和用户组都是root

因此需要将文件拥有者改为指定的用户或组。

解决Hadoop namenode无法启动以及修改hdfs的存放位置_hadoop

解决Hadoop namenode无法启动以及修改hdfs的存放位置_文件系统_02

然后修改**/software/hadoop/etc/hadoop/**目录里面的core-site.xml文件,加入以下节点:

<property>
<name>hadoop.tmp.dir</name>
<value>/home/hdp/hadoop_tmp</value>
<description>A base for other temporary directories.</description>
</property>

注意:我的用户是hdp所以目录是/home/hdp/hadoop_tmp

OK了,重新格式化Namenode:​​hadoop namenode -format​

然后启动hadoop:​​start-all.sh​​​ 执行下​​JPS​​命令就可以看到NameNode了。

解决Hadoop namenode无法启动以及修改hdfs的存放位置_hadoop_03

修改hdfs的存放位置

注:hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配 置namenode和datanode的存放位置,默认就放在这个路径中。

NameNode

dfs.name.dir

预设值 : ${hadoop.tmp.dir}/dfs/name

DataNode

dfs.data.dir

预设值 : ${hadoop.tmp.dir}/dfs/data

这里我们自定义文件路径。

打开/etc/hadoop/hdfs-site.xml文件,添加如下配置:

<property>  
<name>dfs.name.dir</name>
<value>/software/hadoop/hdfs/name</value>
</property>
<property>
name>dfs.data.dir</name>
<value>/software/hadoop/hdfs/data</value>
</property>

解决Hadoop namenode无法启动以及修改hdfs的存放位置_hadoop_04



举报

相关推荐

0 条评论