hdfs 的namenode无法启动

在安装hadoop2.6.0的linux上

格式化hdfs文件系统 hadoop namenode -format

启动hdfs 和MapReduce守护进程(start-dfs.sh、start-yarn.sh)

开始在hdfs文件系统中进行操作

由于偶然原因,机器重启

当再次启动hdfs和mapreduce守护进程后,hdfs文件系统无法操作了

显示:(ls: Call From ubuntu/127.0.1.1 to localhost:8020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused)

jps命令显示namenode没有启动 

网上有些建议:格式化hdfs文件系统,虽然可以重新使用,但是之前操作的文件都没了

又在网上找了一下,说

    每次开机都得重新格式化一下namenode才可以

其实问题就出在tmp文件,默认的tmp文件每次重新开机会被清空,与此同时namenode的格式化信息就会丢失

于是我们得重新配置一个tmp文件目录

首先在home目录下建立一个hadoop_tmp目录

sudo mkdir ~/hadoop_tmp

然后修改hadoop/conf目录里面的core-site.xml文件,加入以下节点:

<property>

<name>hadoop.tmp.dir</name>

<value>/home/chjzh/hadoop_tmp</value>

<description>A base for other temporary directories.</description>

</property>

注意:我的用户是chjzh所以目录是/home/chjzh/hadoop_tmp

OK了,重新格式化Namenode

hadoop namenode -format

然后启动hadoop

start-all.sh

执行下JPS命令就可以看到NameNode了

试了一下,果然可以


你可能感兴趣的:(hdfs 的namenode无法启动)