纵有疾风起
人生不言弃

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

重启计算机之后,遇到了一个问题,执行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 namenode无法启动以及修改hdfs的存放位置插图1

然后修改/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的存放位置插图2

修改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的存放位置插图3

原文链接:https://blog.csdn.net/scgaliguodong123_/article/details/44498173

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

未经允许不得转载:起风网 » 解决Hadoop namenode无法启动以及修改hdfs的存放位置
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录