解决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
因此需要将文件拥有者改为指定的用户或组。

然后修改**/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> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃果冻不吐果冻皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值