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

#背景
重启计算机之后,遇到了一个问题,执行start-all.sh之后,执行JPS命令,发现namenode没有启动。
每次开机都得重新格式化一下namenode才可以。

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

#修改hdfs的存放位置
##core-site.xml修改($HADOOP_HOME/etc/hadoop)

<property>   
                <name>hadoop.tmp.dir</name>
                <value>/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/tmp</alue>
 </property>

##hdfs-site.xml修改($HADOOP_HOME/etc/hadoop)

<property>
		<name>dfs.namenode.name.dir</name>
		<value>/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/data/dfs/name</value>
	</property>
	<property>
		<name>dfs.namenode.edits.dir</name>
		<value>${dfs.namenode.name.dir}</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/data/dfs/data</value>
	</property>

路径的话也不一定需要创建,自动会创建;上述配置修改后重新格式化Namenode

hadoop namenode -format

然后启动hadoop

start-all.sh

这时候jps命令后就能看到NameNode的进程了,另外我们设置的路径下也会自动生成一个tmp文件

[hadoop@hadoop-01 hadoop-2.6.0-cdh5.7.0]$ jps
31808 Jps
31329 NameNode
31485 DataNode
31694 SecondaryNameNode
[hadoop@hadoop-01 hadoop-2.6.0-cdh5.7.0]$ ll
total 68
drwxrwxr-x 2 hadoop hadoop  4096 Apr 20 09:15 bin
drwxrwxr-x 3 hadoop hadoop  4096 Apr 29 20:37 data
drwxrwxr-x 3 hadoop hadoop  4096 Apr 20 09:15 etc
drwxrwxr-x 2 hadoop hadoop  4096 Apr 20 09:15 include
drwxrwxr-x 3 hadoop hadoop  4096 Apr 20 09:15 lib
drwxrwxr-x 2 hadoop hadoop  4096 Apr 20 09:15 libexec
-rw-rw-r-- 1 hadoop hadoop 17087 Apr 20 09:15 LICENSE.txt
drwxrwxr-x 3 hadoop hadoop  4096 Apr 29 20:42 logs
-rw-rw-r-- 1 hadoop hadoop   101 Apr 20 09:15 NOTICE.txt
-rw-rw-r-- 1 hadoop hadoop  1366 Apr 20 09:15 README.txt
drwxrwxr-x 2 hadoop hadoop  4096 Apr 20 09:15 sbin
drwxrwxr-x 4 hadoop hadoop  4096 Apr 20 09:15 share
drwxrwxr-x 3 hadoop hadoop  4096 Apr 29 20:42 tmp
[hadoop@hadoop-01 hadoop-2.6.0-cdh5.7.0]$ cd tmp

猜你喜欢

转载自blog.csdn.net/weixin_43212365/article/details/89684272
今日推荐