重启hadoop后没有NameNode需格式化
此前hadoop的各种配置基本都是照网上各种文章抄的,最近发现了hadoop每次重启都没有namenode,必须格式化namenode。这样会丢失hdfs里的数据,随着实验进行,数据越来越多不舍得删了。于是终于开始解决问题。
这是因为默认的 hadoop.tmp.fir
会在每次关闭后清空,所以要改成自己设定的目录。
先关掉hadoop
我是在hadoop目录下新建dfs路径,再在下面新建name和data路径。
mkdir /usr/local/hadoop/dfs
mkdir /usr/local/hadoop/dfs/name
mkdir /usr/local/hadoop/dfs/data
修改core-site.xml
cd /usr/local/hadoop/etc/hadoop
gedit core-site.xml
内容:
<property>
<name>hadoop.tmp.fir</name>
<value>/usr/local/hadoop/dfs</value>
</property>
再修改hdfs-site.xml
添加
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/dfs/data</value>
<description>设置存放DataNode的文件路径</description>
</property>
最后格式化一遍NameNode
hadoop namenode -format
start-all即可