namenode启动不了以及datanode启动不了的解决办法

版权声明:本文为博主原创文章,可以随便转载 https://blog.csdn.net/appleyuchi/article/details/81712717

首先我们都知道jps查看节点是否起来了

,如果namenode或者datanode没有起来,那么

cd ~/bigdata/hadoop-2.7.7/logs

rm *

然后重新复现之前的问题,

./dfs-start.sh

--------------------------namenode故障-------------------------------------------------------

如果是namenode启动不了,那么就打开

hadoop-appleyuchi-namenode-ubuntu.log

查询error字样

例如出现:

There appears to be a gap in the edit log. We expected txid 1, but got txid 

解决方案:

hadoop namenode -recover
一路选择c,一般就OK了

-------------------------------Datanode故障--------------------------------------------------

如果是datanode启动不了,

同样查看logs下面的文件

hadoop-appleyuchi-datanode-ubuntu.log

这里我们会发现,当我们修复完namenode以后,datanode就故障了,不能启动了

解决方案:

查看hdfs-site.xml,从里面的定义我们看到namenode和datanode的具体位置

         <name>dfs.namenode.name.dir</name>
         <value>file:/home/appleyuchi/dfs/name</value>
    </property>
    <property>
         <name>dfs.datanode.data.dir</name>
         <value>file:/home/appleyuchi/dfs/data</value>
    </property>
</configuration>

用namenode文件夹中的VERSION文件中clusterID

替换

用datanode文件夹中的VERSION文件中的clusterID

即可.

-------------------------------------------------

最后切记:千万不要动不动就格式化,格式化以后hdfs上面的数据就全部没了!!!

今天再次碰到这个问题,来翻看自己记录的文章,却没有解决,

原因是想从集群配置改为伪分布式配置,datanode一直起不来,后来知道怎么回事了,

$HADOOP_HOME/etc/hadoop下面的slave文件中写入localhost即可.

因为,伪分布式的含义是,在一台机子上有master也有slave,所以要在slaves文件中写入ip地址(这里我写成localhost)

当然localhost要在/etc/hosts中做好映射.

猜你喜欢

转载自blog.csdn.net/appleyuchi/article/details/81712717
今日推荐