重启计算机之后,遇到了一个问题,执行start-all.sh之后,执行JPS命令,发现namenode没有启动。
每次开机都得重新格式化一下namenode才可以。
原因:
hadoop.tmp.dir是hadoop文件系统依赖的基础配置,很多路径都依赖它。它默认的位置是在/tmp/{$user}下面,但是在/tmp路径下的存储是不安全的,默认的/tmp文件每次重新开机会被清空,与此同时namenode的格式化信息就会丢失。
于是我们得重新配置一个tmp文件目录。
首先在hdp用户目录下建立一个hadoop_tmp目录:sudo mkdir ~/hadoop_tmp
由于刚才是创建的时候,文件夹所属用户和用户组都是root
因此需要将文件拥有者改为指定的用户或组。
然后修改/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了。
修改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>
原文链接:https://blog.csdn.net/scgaliguodong123_/article/details/44498173
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
还没有人抢沙发呢~