namenode 无法启动

dzhxie 2018-01-10 08:30:48
Hello,

我有5 台机器, Centos7, hadoop 是2.8.3. 两台是 namenode, 另外三个是datanode。 具体见下面表格:
HostName Softwares Process
kencentos1 JDK, hadoop namenode, zkfc (active), resourceManager
kencentos2 JDK, hadoop namenode, zkfc (active), resourceManager
kencentosClient1 JDK, hadoop,zookeeper QuorumPeefMain(zookeeper),journnode, datanode,nodeManger
kencentosClient2 JDK, hadoop,zookeeper QuorumPeefMain(zookeeper),journnode, datanode,nodeManger
kencentosClient3 JDK, hadoop,zookeeper QuorumPeefMain(zookeeper),journnode, datanode,nodeManger

按照文档配好以后,core-site.xml 是这样的:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/data</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://kenns</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>kencentosClient1:2181,kencentosClient3:2181,kencentosClient2:2181</value>
</property>
</configuration>

hdfs-site.xml 如下:

<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.block.size</name>
<value>64M</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>kenns</value>
</property>
<property>
<name>dfs.ha.namenodes.kenns</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.kenns.nn1</name>
<value>kencentos1:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.kenns.nn1</name>
<value>kencentos1:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.kenns.nn2</name>
<value>kencentos2:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.kenns.nn1</name>
<value>kencentos2:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://kencentosClient1:8485;kencentosClient2:8485;kencentosClient3:8485/kenns</value>
</property>
<!-- JournalNode data location -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/hadoop/journal</value>
</property>
<!-- name node fail over -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- fail over way -->
<property>
<name>dfs.client.failover.proxy.provider.kenns</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>

slaves 和 hosts 里面配置好,SSH 免密登陆也都配置好。互相可以访问。这五台机器在一个物理机器上,是5个VM。
格式化namenode 以后,启动,一直在启动的那个namenode上说第二个namenode 的50070 被占用。查看另外一个namenode 的log,里面说没有被format。

下面是第一个namenode 的错误信息:
2018-01-09 12:34:31,773 INFO org.apache.hadoop.http.HttpServer2: HttpServer.start() threw a non Bind IOException
java.net.BindException: Port in use: kencentos2:50070
at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:998)
at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:935)
at org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.start(NameNodeHttpServer.java:171)
at org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:842)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:693)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:906)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:885)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1626)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1694)
Caused by: java.net.BindException: Cannot assign requested address
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)

下面是第二个namenode的错误信息:
2018-01-09 12:34:32,747 WARN org.apache.hadoop.hdfs.server.common.Storage: Storage directory /opt/hadoop/data/dfs/name does not exist
2018-01-09 12:34:32,748 WARN org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Encountered exception loading fsimage
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /opt/hadoop/data/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:369)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:220)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1044)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:707)
at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:635)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:696)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:906)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:885)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1626)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1694)


hosts文件:
127.0.0.1 localhost.localdomain localhost
192.168.1.237 kencentosClient2
192.168.1.221 kencentosClient1
192.168.1.248 kencentos1
192.168.1.252 kencentos2
192.168.1.217 kencentosClient3
0.0.0.0 kencentos2

求大神帮忙解决。谢谢
...全文
926 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
卜塔 2018-01-26
  • 打赏
  • 举报
回复
hadoop是可以有两个namenode的,federation就是为了解决单点故障提出的namenode水平扩展方案。
引用 3 楼 qq_39132578 的回复:
1.这是因为 namenode 只有一个datanode 可以有好多个 2.而且 我看到你的那个namenode地址 好像有问题 3. 你也可以试着 将占用的 端口 结束掉 再试一次 4.namenode地址在哪个机器上你就必须在哪个机器上启动 希望能帮到你 我也是初学者!
阿里云鬼谷子 2018-01-25
  • 打赏
  • 举报
回复
1.这是因为 namenode 只有一个datanode 可以有好多个 2.而且 我看到你的那个namenode地址 好像有问题 3. 你也可以试着 将占用的 端口 结束掉 再试一次 4.namenode地址在哪个机器上你就必须在哪个机器上启动 希望能帮到你 我也是初学者!
shiter 2018-01-10
  • 打赏
  • 举报
回复
Port in use: kencentos2:50070 端口占用?
dzhxie 2018-01-10
  • 打赏
  • 举报
回复
我已经解决了这个问题, hdfs-site.xml 里面那个 nn1, nn2 有个地方弄错了

20,807

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧