启动Hadoop集群: Step1 : 在各个JournalNode节点上,输入以下命令启动journalnode服务: sbin/hadoop-daemon.sh start journalnode Step2: 在[nn1]上,对其进行格式化,并启动: bin/hdfs namenode -format sbin/hadoop-daemon.sh start namenode Step3: 在[nn2]上,同步nn1的元数据信息: bin/hdfs namenode -bootstrapStand

fish - Hadooper

赞同来自: duyzn Eric_Jiang

将127.0.0.1 localhost master这行最后的"master"去掉。 原因是,当namenode启动的时候,它发现配置文件中配的所要监听的端口是master:8020,于是去读/etc/hosts,发现127.0.0.1 master这样的对应关系配置,于是,在启动的时候,去监听127.0.0.1:8020。   这是个很糟糕的事情,因为namenode只监听127.0.0.1,其它机器都无法连接上namenode(注意,linux中,如果监听的地址为127.0.0.1,只能接受本机发来的消息)。   正好,应证了昨天在班级群中一再强调的,“不要将一个IP对应到多个host”,因为你搞不清楚什么时候冒个大坑出来让自己踩到。

Eric_Jiang - 我是小象的搬运工!!!

赞同来自: duyzn

在你没有执行bootstrapstandby之前,你搭建的集群并不是ha的,所以这时候是普通的集群.这时候你启动namenode肯定是active的.之所以没有肯定是你之前搞错ip导致的.你手动切换就可以了.

Eric_Jiang - 我是小象的搬运工!!!

赞同来自: duyzn

1459474258257.png
你hdfs.site.xml配置配的是master 你的hosts中有两个master.你要修改下你的hosts. 这个事情在群里强调好几遍了.不要再犯了啊

duyzn

赞同来自:

执行到这里的时候,nn2就起不来了.这里是异常信息

Eric_Jiang - 我是小象的搬运工!!!

赞同来自:

有更详细信息么,这个看不出来呢  

duyzn

赞同来自:

我不知道啊,愁死我了

Eric_Jiang - 我是小象的搬运工!!!

赞同来自:

你运行失败是因为你namenode不是active的

fish - Hadooper

赞同来自:

确定一下,nn1上的namenode现在是正常执行的么?

fish - Hadooper

赞同来自:

nn2执行了bootstrapstandby之后,只是将fsimage做了同步,还需要执行start namenode才能将其启动起来。

Eric_Jiang - 我是小象的搬运工!!!

赞同来自:

昨天回答: 孩纸,你的配置有问题,为什么在你执行bootstrapstandby之前nn1 namenode启动了会是standby状态, 你需要active nn1才能执行bootstrapstandby.不然肯定会出错的. 现在解决了么?  

duyzn

赞同来自:

现在的问题是:nn1正常启动后,在nn2上执行bin/hdfs namenode -bootstrapStandby 命令的时候,nn2日志提示错误:org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:Directory /home/hadoop/hadoop/hdfs/name is in an inconsistent state: storage directory does not exist or is not accessible。我请教如何解决这个错误

duyzn

赞同来自:

我也是恍然大悟了。不过庆幸犯错误,懂了很多。谢谢老师们的指导

要回复问题请先登录注册