Hadoop搭建HA的时候,开启NameNode服务的时候总有其中一个挂掉的原因及解决方法

搭建HA的情况下,开启start-dfs.sh 服务的时候,
                              master和slave1两个NameNode服务总有一个挂掉,
原因:start-dfs.sh的时候,首先开启的是   master:NameNode
                                                          后是  slave1:NameNode
                                                       最后是   JournalNode
           即是:namenode-->datanode-->journalnode-->zkfc,两个NameNode的服务冲突,必须的先开启
                          JournalNode服务才行(三个节点都要先开)

 为防止这种情况,有两个解决方法:
                方法1:服务开启顺序:              

HA集群开启服务的过程---------------------------------------
    step1:开启zookeeper服务:
         $>zkServer.sh start
    (略)step2:开启hdfs:
         【$>start-dfs.sh    //说明:namenode-->datanode-->journalnode-->zkfc】
    step3:开启journalnode守护进程(在qjournal协议指定的节点上执行):
         $>hadoop-daemon.sh start journalnode 
    step4:开启namenode守护进程(在nn1和nn2上执行)
         $>hadoop-daemon.sh start namenode
    step5:开启datanode守护进程(在namenode节点上执行hadoop-daemons.sh开启所有datanode节点)
         $>hadoop-daemons.sh start datanode
    step6:开启zkfc守护进程
         $>hadoop-daemon.sh --script $HADOOP_PREFIX/bin/hdfs start zkfc
  
 守护进程的说明:
	5458 QuorumPeerMain           【zookeeper Server端】
	7715 Jps                      【java进程】
	7626 DFSZKFailoverController  【ZKFC:zookeeper client客户端】
	7324 JournalNode              【QJM:日志节点进程】
	7405 NameNode                 【名称节点】
        6015 DataNode                 【数据节点】
	

       方法2: 
               在core-site.xml添加下述内容:

【core-site.xml 】,默认是内容,IPC协议
  
          ipc.client.connect.max.retries
          20  //最大连接次数,修改大一点,为20,默认10
          Indicates the number of retries a client will make to establish
               a server connection.
          
  

  
          ipc.client.connect.retry.interval
          1000 //重复连接的间隔1000ms=1s
          Indicates the number of milliseconds a client will wait for
                        before retrying to establish a server connection.
          
  

        因为:NameNode连接不上JournalNode,超过一定的次数,就会挂掉,所以要增加连接的最大次数。

 

 

 

 

 

你可能感兴趣的:(HA,Hadoop)