hadoop2.7.3 HA高可用集群安装


    1. 环境准备

    2. Hadoop安装配置


    3. 修改配置

    1. 所有节点安装jdk1.8ssh,配置hosts文件,配置centos680centos681之间的互相免登陆,centos680到其他所有机器的免登陆,关闭防火墙。

    2. centos682centos683centos684上安装Zookeeper3.4.9


    3. 复制hadoop-2.7.3.tar.gzcentos680/opt目录下,以后所有的操作都在centos680上进行。

    4. 解压hadoop-2.7.3.tar.gz/opt/bigdata文件夹下:tar –zxvf hadoop-2.7.3.tar.gz –C /opt/bigdata/




    1. ResourceManager借助zk实现热备,当某个节点失效之后另一个节点能够被通知,并接管任务。


    1. NN必须实现共享元数据才能保证无缝切换;共享元数据可以采用Linux提供的NFS服务,也可以使用Hadoop提供的JournalNodeJournalNode采用多数派理论,保证半数以上的节点写成功即认为成功。

    2. NN要实现自动切换(不需要手工切换),就必须实现实时监控每个节点的状态;这里采用DFSFailoverController进行监控,如果某个NN失败,其他NN能够通过ZK被通知到,并接替NN的任务。

    1. HDFS高可用性(NameNode

    2. RM高可用性(ResourceManager

    3. Hadoop2.7.3 HA搭建步骤



    1. hadoop-env.sh



  1. 修改JAVA_HOME



    1. core-site.xml





    1. hdfs-site.xml



  2. [html] view plain copy

    1. <property>   

    2.        <name>dfs.nameservicesname>   

    3.        <value>nsvalue>   

    4.    property>   

    5.   

    6.    <property>   

    7.        <name>dfs.ha.namenodes.nsname>   

    8.        <value>nn1,nn2value>   

    9.    property>   

    10.   

    11.    <property>   

    12.        <name>dfs.namenode.rpc-address.ns.nn1name>   

    13.        <value>centos680:9000value>   

    14.    property>   

    15.   

    16.    <property>   

    17.        <name>dfs.namenode.http-address.ns.nn1name>   

    18.        <value>centos680:50070value>   

    19.    property>   

    20.   

    21.    <property>   

    22.        <name>dfs.namenode.rpc-address.ns.nn2name>   

    23.        <value>centos681:9000value>   

    24.    property>   

    25.   

    26.    <property>   

    27.        <name>dfs.namenode.http-address.ns.nn2name>   

    28.        <value>centos681:50070value>   

    29.    property>   

    30.   

    31.    <property>   

    32.        <name>dfs.namenode.shared.edits.dirname>   

    33.        <value>qjournal://zk1:8485;zk2:8485;zk3:8485/nsvalue>   

    34.    property>   

    35.   

    36.    <property>   

    37.        <name>dfs.journalnode.edits.dirname>   

    38.        <value>/opt/big/hadoop-2.7.3/journaldatavalue>   

    39.    property>   

    40.   

    41.    <property>   

    42.        <name>dfs.ha.automatic-failover.enabledname>   

    43.        <value>truevalue>   

    44.    property>   

    45.   

    46.    <property>   

    47.        <name>dfs.client.failover.proxy.provider.nsname>   

    48.        <value>  

    49.                org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider  

    50.        value>   

    51.    property>   

    52.    <property>   

    53.        <name>dfs.ha.fencing.methodsname>   

    54.        <value>   

    55.            sshfence   

    56.            shell(/bin/true)   

    57.        value>   

    58.    property>   

    59.    <property>   

    60.        <name>dfs.ha.fencing.ssh.private-key-filesname>   

    61.        <value>/root/.ssh/id_rsavalue>   

    62.    property>   

    63.    <property>   

    64.        <name>dfs.ha.fencing.ssh.connect-timeoutname>   

    65.        <value>30000value>   

    66.    property>  



    1. mapred-side.xml



  3. [html] view plain copy



    1. <span style="white-space:pre">  span><property>  

    2.                 <name>mapreduce.framework.namename>  

    3.                 <value>yarnvalue>  

    4.         property>  



    1. yarn-site.xml

    2. [html] view plain copy



    3. <configuration>  

    4.                                             

    5.   

    6.                                           <property>  

    7.   

    8.                                              <name>yarn.resourcemanager.ha.enabledname>  

    9.   

    10.                                              <value>truevalue>  

    11.   

    12.                                           property>  

    13.   

    14.                                             

    15.   

    16.                                           <property>  

    17.   

    18.                                              <name>yarn.resourcemanager.cluster-idname>  

    19.   

    20.                                              <value>yrcvalue>  

    21.   

    22.                                           property>  

    23.   

    24.                                             

    25.   

    26.                                           <property>  

    27.   

    28.                                              <name>yarn.resourcemanager.ha.rm-idsname>  

    29.   

    30.                                              <value>rm1,rm2value>  

    31.   

    32.                                           property>  

    33.   

    34.                                             

    35.   

    36.                                           <property>  

    37.   

    38.                                              <name>yarn.resourcemanager.hostname.rm1name>  

    39.   

    40.                                              <value>h0value>  

    41.   

    42.                                           property>  

    43.   

    44.                                           <property>  

    45.   

    46.                                              <name>yarn.resourcemanager.hostname.rm2name>  

    47.   

    48.                                              <value>h1value>  

    49.   

    50.                                           property>  

    51.   

    52.                                             

    53.   

    54.                                           <property>  

    55.   

    56.                                              <name>yarn.resourcemanager.zk-addressname>  

    57.   

    58.                                              <value>h2:2181,h3:2181,h4:2181value>  

    59.   

    60.                                           property>  

    61.   

    62.                                           <property>  

    63.   

    64.                                              <name>yarn.nodemanager.aux-servicesname>  

    65.   

    66.                                              <value>mapreduce_shufflevalue>  

    67.   

    68.                                           property>  

    69.   

    70.                             configuration>  





    1. slaves





    1. 分发到其他节点(在centos680上操作)


  4.   scp -r /opt/bigdata/hadoop-2.7.3/ h1:/opt/bigdata/
      scp -r /opt/bigdata/hadoop-2.7.3/ h2:/opt/bigdata/
      scp -r /opt/bigdata/hadoop-2.7.3/ h3:/opt/bigdata/
      scp -r /opt/bigdata/hadoop-2.7.3/ h4:/opt/bigdata/



    1. h2,h3,h4启动所有的Zookeeper

    2. h2,h3,h4启动JournalNodehadoop-daemon.sh start journalnode

    3. centos680上执行格式化namenodehdfs namenode -format,并将格式化后的元数据内容复制到另外一个namenode节点中(h1:scp -r tmp/ h1:/opt/bigdata/hadoop-2.7.3/(tmp是在core-site中配置的namenode元数据应该所处的位置)

    4. 格式化zkbin/hdfs zkfc –formatZK。该操作在Zookeeper中创建了数据节点:

    5. 初始化和启动




    1. 启动dfsyarn



  5. sbin/start-dfs.sh

    sbin/start-yarn.sh



    1. 验证


  6.   通过杀死activenamenode进程或者关闭namenode所在机器来验证切换情况。