精华内容
下载资源
问答
  • HadoopHA机制

    2017-06-08 19:06:09
    HadoopHA机制前言:正式引入HA机制是从hadoop2.0开始,之前的版本没有HA机制1.1HA的运作机制(1)hadoop-HA集群运作机制介绍所谓HA,即高可用(7*24小时不中断服务)实现高可用最关键的是消除单点故障hadoop-ha...

     Hadoop的HA机制

    前言:正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制

    1.1HA的运作机制

    (1)hadoop-HA集群运作机制介绍

    所谓HA,即高可用(7*24小时不中断服务)

    实现高可用最关键的是消除单点故障

    hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA

     

    (2)HDFS的HA机制详解

    通过双namenode消除单点故障

    双namenode协调工作的要点:

        A、元数据管理方式需要改变:

        内存中各自保存一份元数据

        Edits日志只能有一份,只有Active状态的namenode节点可以做写操作

        两个namenode都可以读取edits

        共享的edits放在一个共享存储中管理(qjournal和NFS两个主流实现)

        B、需要一个状态管理功能模块

        实现了一个zkfailover,常驻在每一个namenode所在的节点

        每一个zkfailover负责监控自己所在namenode节点,利用zk进行状态标识

        当需要进行状态切换时,由zkfailover来负责切换

        切换时需要防止brain split现象的发生

     

    1.2 HDFS-HA图解:

     

    展开全文
  • 08-Hadoop-HA.pdf

    2020-02-09 23:37:54
    Hadoop-HA思维导图,便捷整理思路,实操Hadoop-HA、ResourceManager-HA、Yarn、RS-HA故障转移
  • HadoopHA机制

    千次阅读 2017-01-12 15:02:35
    正式引入HA机制是从hadoop2.0开始,之前的版本没有HA机制 HA的运作机制 (1)hadoop-HA集群运作机制介绍 所谓HA,即高可用(7*24小时不中断服务) 实现高可用最关键的是消除单点故障 hadoop-ha严格来...

    正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制


    HA的运作机制

    1)hadoop-HA集群运作机制介绍

    所谓HA,即高可用(7*24小时不中断服务)

    实现高可用最关键的是消除单点故障

    hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA

     

    2)HDFS的HA机制详解

    通过双namenode消除单点故障

    namenode协调工作的要点:

    A、元数据管理方式需要改变:

    内存中各自保存一份元数据

    Edits日志只能有一份,只有Active状态的namenode节点可以做写操作

    两个namenode都可以读取edits

    共享的edits放在一个共享存储中管理(qjournal和NFS两个主流实现)

    B、需要一个状态管理功能模块

    实现了一个zkfailover,常驻在每一个namenode所在的节点

    每一个zkfailover负责监控自己所在namenode节点,利用zk进行状态标识

    当需要进行状态切换时,由zkfailover来负责切换

    切换时需要防止brain split现象的发生



    HA集群的安装部署


    集群部署节点角色的规划(10节点):

    server01   namenode   zkfc    > start-dfs.sh

    server02   namenode   zkfc

     

    server03   resourcemanager    > start-yarn.sh

    server04   resourcemanager

     

    server05   datanode   nodemanager     

    server06   datanode   nodemanager     

    server07   datanode   nodemanager     

     

    server08   journal node    zookeeper

    server09   journal node    zookeeper

    server10   journal node    zookeeper


    集群部署节点角色的规划(3节点)

    server01   namenode    resourcemanager  zkfc   nodemanager  datanode   zookeeper   journal node

    server02   namenode    resourcemanager  zkfc   nodemanager  datanode   zookeeper   journal node

    server05   datanode    nodemanager     zookeeper    journal node


     

    环境准备

    a、linux系统准备

    ip地址配置

        hostname配置

        hosts映射配置

    防火墙关闭

    init启动级别修改

    sudoers加入hadoop用户

    ssh免密登陆配置

     

    b、java环境的配置

        上传jdk,解压,修改/etc/profile

     

    c、zookeeper集群的部署


    配置文件

     

    core-site.xml

    <configuration>

    <!-- 指定hdfs的nameservice为ns1 -->

    <property>

    <name>fs.defaultFS</name>

    <value>hdfs://ns1/</value>

    </property>

    <!-- 指定hadoop临时目录 -->

    <property>

    <name>hadoop.tmp.dir</name>

    <value>/home/hadoop/app/hadoop-2.4.1/tmp</value>

    </property>

    <!-- 指定zookeeper地址 -->

    <property>

    <name>ha.zookeeper.quorum</name>

    <value>weekend05:2181,weekend06:2181,weekend07:2181</value>

    </property>

    </configuration>

     

     

    hdfs-site.xml

    <configuration>

    <!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->

    <property>

    <name>dfs.nameservices</name>

    <value>ns1</value>

    </property>

    <!-- ns1下面有两个NameNode,分别是nn1,nn2 -->

    <property>

    <name>dfs.ha.namenodes.ns1</name>

    <value>nn1,nn2</value>

    </property>

    <!-- nn1的RPC通信地址 -->

    <property>

    <name>dfs.namenode.rpc-address.ns1.nn1</name>

    <value>weekend01:9000</value>

    </property>

    <!-- nn1的http通信地址 -->

    <property>

    <name>dfs.namenode.http-address.ns1.nn1</name>

    <value>weekend01:50070</value>

    </property>

    <!-- nn2的RPC通信地址 -->

    <property>

    <name>dfs.namenode.rpc-address.ns1.nn2</name>

    <value>weekend02:9000</value>

    </property>

    <!-- nn2的http通信地址 -->

    <property>

    <name>dfs.namenode.http-address.ns1.nn2</name>

    <value>weekend02:50070</value>

    </property>

    <!-- 指定NameNode的edits元数据在JournalNode上的存放位置 -->

    <property>

    <name>dfs.namenode.shared.edits.dir</name>

    <value>qjournal://weekend05:8485;weekend06:8485;weekend07:8485/ns1</value>

    </property>

    <!-- 指定JournalNode在本地磁盘存放数据的位置 -->

    <property>

    <name>dfs.journalnode.edits.dir</name>

    <value>/home/hadoop/app/hadoop-2.4.1/journaldata</value>

    </property>

    <!-- 开启NameNode失败自动切换 -->

    <property>

    <name>dfs.ha.automatic-failover.enabled</name>

    <value>true</value>

    </property>

    <!-- 配置失败自动切换实现方式 -->

    <property>

    <name>dfs.client.failover.proxy.provider.ns1</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>

    <!-- 使用sshfence隔离机制时需要ssh免登陆 -->

    <property>

    <name>dfs.ha.fencing.ssh.private-key-files</name>

    <value>/home/hadoop/.ssh/id_rsa</value>

    </property>

    <!-- 配置sshfence隔离机制超时时间 -->

    <property>

    <name>dfs.ha.fencing.ssh.connect-timeout</name>

    <value>30000</value>

    </property>

    /configuration>

     

     

    测试


    使用的命令上hdfs  haadmin

    可用 hdfs  haadmin –help查看所有帮助信息

    可以看到,状态操作的命令示例:

    查看namenode工作状态   

    hdfs haadmin -getServiceState nn1

     

    standby状态namenode切换到active

    hdfs haadmin –transitionToActive nn1

     

    active状态namenode切换到standby

    hdfs haadmin –transitionToStandby nn2

     




    展开全文
  • hadoop2.7.2HA集群安装

    2016-11-02 03:36:04
    hadoop2.7.2HA集群安装
  • HadoopHA机制.pdf

    2021-09-13 14:27:15
    HadoopHA机制.pdf
  • 大数据技术之Hadoop-HA
  • 在上一篇《Hadoop之——Hadoop2.5.2 HA高可靠性集群搭建(Hadoop+Zookeeper)前期准备》一文,我们讲解了基于HA搭建Hadoop集群环境的基础准备,并配置了SSH无密码登录,同时向大家简要的讲解了Hadoop的相关知识。...

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/52728397

    在上一篇《Hadoop之——Hadoop2.5.2 HA高可靠性集群搭建(Hadoop+Zookeeper)前期准备》一文中,我们讲解了基于HA搭建Hadoop集群环境的基础准备,并配置了SSH无密码登录,同时向大家简要的讲解了Hadoop的相关知识。这边博文是基于上篇《Hadoop之——Hadoop2.5.2 HA高可靠性集群搭建(Hadoop+Zookeeper)前期准备》一文搭建Hadoop环境的,请大家先阅读上一篇博文《Hadoop之——Hadoop2.5.2 HA高可靠性集群搭建(Hadoop+Zookeeper)前期准备》,然后我们再一起搭建Hadoop集群环境。如果您已经阅读了《Hadoop之——Hadoop2.5.2 HA高可靠性集群搭建(Hadoop+Zookeeper)前期准备》, 那么现在我们就可以正式进行基于HA搭建Hadoop集群环境了。

    一、Hadoop(HA)集群的规划

    集群规划

    主机名IPNameNodeDataNodeYarnZooKeeperJournalNode
    liuyazhuang145192.168.0.145
    liuyazhuang146192.168.0.146
    liuyazhuang147192.168.0.147

    二、Hadoop(HA)集群环境搭建

    注:我们搭建环境集中在liuyazhuang145主机上搭建,搭建完毕将相应的文件拷贝到liuyazhuang146和liuyazhuang147主机。

    1、安装JDK

    1.1下载JDK

    可以到Oracle官网下载Linux版本的JDK,链接为:http://www.oracle.com/technetwork/java/javase/downloads/index.html 我下载的是jdk1.7.0_72

    1.2解压JDK

    在命令行输入tar -zxvf jdk-7u72-linux-x64.tar.gz 进行解压

    1.3配置环境变量

    在命令行输入vim /etc/profile打开profile文件,在文件末尾添加如下代码:

    JAVA_HOME=/usr/local/jdk1.7.0_72
    CLASS_PATH=.:$JAVA_HOME/lib
    PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME CLASS_PATH PATH
    输入命令source /etc/profile使环境变量生效

    1.4拷贝文件

    在命令行输入如下命令将JDK环境和/etc/profile文件拷贝到liuyazhuang146和liuyazhuang147主机上。

    scp -r /usr/local/jdk1.7.0_72 liuyazhuang146:/usr/local
    scp -r /usr/local/jdk1.7.0_72 liuyazhuang147:/usr/local
    scp /etc/profile liuyazhuang146:/etc/
    scp /etc/profile liuyazhuang147:/etc/
    同时,我们分别在liuyazhuang146和liuyazhuang147主机上执行命令source /etc/profile使环境变量生效

    至此,JDK环境搭建完成。

    2、搭建Zookeeper集群

    2.1下载Zookeeper

    在Apache官网下载Zookeeper,链接为:http://www.apache.org/dyn/closer.cgi/zookeeper/我下载的是zookeeper-3.4.9

    2.2解压Zookeeper

    在命令行输入tar -zxvf zookeeper-3.4.9.tar.gz对zookeeper进行解压。

    2.3Zookeeper集群搭建

    切换到Zookeeper的conf目录下执行以下命令

    cp zoo_sample.cfg zoo.cfg 
    然后输入vim zoo.cfg命令 配置如下:

    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=/usr/local/zookeeper-3.4.9/data
    dataLogDir=/usr/local/zookeeper-3.4.9/datalog
    # the port at which the clients will connect
    clientPort=2181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #maxClientCnxns=60
    #
    # Be sure to read the maintenance section of the 
    # administrator guide before turning on autopurge.
    #
    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    #
    # The number of snapshots to retain in dataDir
    #autopurge.snapRetainCount=3
    # Purge task interval in hours
    # Set to "0" to disable auto purge feature
    #autopurge.purgeInterval=1
    server.1=liuyazhuang145:2888:3888
    server.2=liuyazhuang146:2888:3888
    server.3=liuyazhuang147:2888:3888
    同时在Zookeeper目录下新建data和dataLog两个目录用来存放Zookeeper的myid文件和日志文件,

    mkdir data
    mkdir dataLog
    将目录切换到zookeeper的data目录下

    执行命令

    vim myid
    按下键盘i输入1后,按下esc键,再按下shift+; (也就是输入冒号:),再输入wq退出,此时就在zookeeper的data目录下创建了一个myid文件,这个myid的文件中的内容为1。

    2.4配置Zookeeper环境变量

    为操作方便,我们也将Zookeeper配置到环境变量中,加上之前配置的JDK,我们在profile的配置如下:

    JAVA_HOME=/usr/local/jdk1.7.0_72
    CLASS_PATH=.:$JAVA_HOME/lib
    ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.9
    PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
    export JAVA_HOME HADOOP_HOME CLASS_PATH PATH

    2.5拷贝文件

    将Zookeeper环境和profile文件分别拷贝到liuyazhuang146和liuyazhuang147主机上。如下命令:

    scp -r /usr/local/zookeeper-3.4.9 liuyazhuang146:/usr/local
    scp -r /usr/local/zookeeper-3.4.9 liuyazhuang147:/usr/local
    scp  /ect/profile liuyazhuang146:/etc/
    scp  /ect/profile liuyazhuang147:/etc/
    同时,我们分别在liuyazhuang146和liuyazhuang147主机上执行命令source /etc/profile使环境变量生效。

    2.6修改其他主机的myid文件

    注:别忘了将liuyazhuang146主机上Zookeeper中myid文件内容修改为2  将liuyazhuang147主机上Zookeeper中myid文件内容修改为3

    至此,Zookeeper集群环境搭建完毕。

    3、Hadoop集群环境搭建

    同样的,我们也是现在liuyazhuang145主机上搭建Hadoop环境,然后将环境拷贝到liuyazhuang146主机和liuyazhuang147主机上。

    3.1下载Hadoop

    同样的,我们也是在Apache官网下载的Hadoop,我这里下载的hadoop 2.5.2版本的。

    3.2解压Hadoop

    输入命令tar -zxvf hadoop-2.5.2.tar.gz解压Hadoop

    3.3配置Hadoop

    1) core-site.xml

    <configuration>
    
     <!-- 指定hdfs的nameservice为ns -->
     <property>    
          <name>fs.defaultFS</name>    
          <value>hdfs://ns</value>    
     </property>
     <!--指定hadoop数据临时存放目录-->
     <property>
          <name>hadoop.tmp.dir</name>
          <value>/usr/local/hadoop-2.5.2/tmp</value>
     </property>   
                              
     <property>    
          <name>io.file.buffer.size</name>    
          <value>4096</value>    
     </property>
     <!--指定zookeeper地址-->
     <property>
          <name>ha.zookeeper.quorum</name>
          <value>liuyazhuang145:2181,liuyazhuang146:2181,liuyazhuang147:2181</value>
     </property>
    
    </configuration>

    2) hdfs-site.xml

    <configuration>
        <!--指定hdfs的nameservice为ns,需要和core-site.xml中的保持一致 -->    
        <property>    
            <name>dfs.nameservices</name>    
            <value>ns</value>    
        </property>  
        <!-- ns下面有两个NameNode,分别是nn1,nn2 -->
        <property>
           <name>dfs.ha.namenodes.ns</name>
           <value>nn1,nn2</value>
        </property>
        <!-- nn1的RPC通信地址 -->
        <property>
           <name>dfs.namenode.rpc-address.ns.nn1</name>
           <value>liuyazhuang145:9000</value>
        </property>
        <!-- nn1的http通信地址 -->
        <property>
            <name>dfs.namenode.http-address.ns.nn1</name>
            <value>liuyazhuang145:50070</value>
        </property>
        <!-- nn2的RPC通信地址 -->
        <property>
            <name>dfs.namenode.rpc-address.ns.nn2</name>
            <value>liuyazhuang146:9000</value>
        </property>
        <!-- nn2的http通信地址 -->
        <property>
            <name>dfs.namenode.http-address.ns.nn2</name>
            <value>liuyazhuang146:50070</value>
        </property>
        <!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
        <property>
             <name>dfs.namenode.shared.edits.dir</name>
             <value>qjournal://liuyazhuang145:8485;liuyazhuang146:8485;liuyazhuang147:8485/ns</value>
        </property>
        <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
        <property>
              <name>dfs.journalnode.edits.dir</name>
              <value>/usr/local/hadoop-2.5.2/journal</value>
        </property>
        <!-- 开启NameNode故障时自动切换 -->
        <property>
              <name>dfs.ha.automatic-failover.enabled</name>
              <value>true</value>
        </property>
        <!-- 配置失败自动切换实现方式 -->
        <property>
                <name>dfs.client.failover.proxy.provider.ns</name>
                <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property>
        <!-- 配置隔离机制 -->
        <property>
                 <name>dfs.ha.fencing.methods</name>
                 <value>sshfence</value>
        </property>
        <!-- 使用隔离机制时需要ssh免登陆 -->
        <property>
                <name>dfs.ha.fencing.ssh.private-key-files</name>
                <value>/root/.ssh/id_rsa</value>
        </property>
                                  
        <property>    
            <name>dfs.namenode.name.dir</name>    
            <value>file:///usr/local/hadoop-2.5.2/hdfs/name</value>    
        </property>    
        
        <property>    
            <name>dfs.datanode.data.dir</name>    
            <value>file:///usr/local/hadoop-2.5.2/hdfs/data</value>    
        </property>    
        
        <property>    
           <name>dfs.replication</name>    
           <value>2</value>    
        </property>   
        <!-- 在NN和DN上开启WebHDFS (REST API)功能,不是必须 -->                                                                    
        <property>    
           <name>dfs.webhdfs.enabled</name>    
           <value>true</value>    
        </property>    
    </configuration>
    3) mapred-site.xml

    <configuration>
     <property>    
            <name>mapreduce.framework.name</name>    
            <value>yarn</value>    
     </property>    
    </configuration>
    4) yarn-site.xml
    <configuration>
        <!-- 指定nodemanager启动时加载server的方式为shuffle server -->
        <property>    
                <name>yarn.nodemanager.aux-services</name>    
                <value>mapreduce_shuffle</value>    
         </property>  
         <!-- 指定resourcemanager地址 -->
         <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>liuyazhuang147</value>
          </property> 
    </configuration>
    在hadoop下手动创建journal目录,在hadoop下手动创建/hdfs/name目录和/hdfs/data目录

    别分输入如下命令:

    mkdir -p /usr/local/hadoop-2.5.2/journal
    mkdir -p /usr/local/hadoop-2.5.2/hdfs/name
    mkdir -p /usr/local/hadoop-2.5.2/hdfs/data
    注:后续如果Hadoop启动失败,可能是配置文件的编码问题,如果是配置文件的编码问题,则将上面的配置文件中的中文注释全部删除掉即可。

    5) hadoop-env.sh

    找到文件的export JAVA_HOME=${JAVA_HOME} 一行,将其修改为export JAVA_HOME=/usr/local/jdk1.7.0_72

    6)slaves

    liuyazhuang145
    liuyazhuang146
    liuyazhuang147
    7)配置Hadoop环境变量

    加上之前配置的JDK环境变量和Zookeeper环境变量,/etc/profile文件如下所示:

    JAVA_HOME=/usr/local/jdk1.7.0_72
    CLASS_PATH=.:$JAVA_HOME/lib
    HADOOP_HOME=/usr/local/hadoop-2.5.2
    ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.9
    PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$PATH
    export JAVA_HOME HADOOP_HOME CLASS_PATH PATH
    8)复制Hadoop环境到其他主机

    在命令行分别输入如下命令

    scp -r /usr/local/hadoop-2.5.2 liuyazhuang146:/usr/local
    scp -r /usr/local/hadoop-2.5.2 liuyazhuang147:/usr/local
    scp /etc/profile liuyazhuang146:/etc
    scp /etc/profile liuyazhuang147:/etc
    同时,我们分别在liuyazhuang146和liuyazhuang147主机上执行命令source /etc/profile使环境变量生效。

    至此,Hadoop集群环境搭建完毕。

    三、集群的启动

    1、启动Zookeeper集群

    分别在liuyazhuang145、liuyazhuang146、liuyazhuang147上执行如下命令启动zookeeper集群;

    zkServer.sh start 
    验证集群zookeeper集群是否启动,分别在liuyazhuang145、liuyazhuang146、liuyazhuang147上执行如下命令验证zookeeper集群是否启动,集群启动成功,有两个follower节点跟一个leader节点;

    如下:


    2、启动journalnode集群

    在liuyazhuang145上执行如下命令完成JournalNode集群的启动

    [root@liuyazhuang145 ~]# hadoop-daemons.sh start journalnode 
     执行jps命令,可以查看到JournalNode的java进程pid

    3、格式化zkfc,在zookeeper中生成ha节点

    在liuyazhaung145执行如下命令,完成格式化

    hdfs zkfc –formatZK 

     (注意,这条命令最好手动输入,直接copy执行有可能会有问题)

    4、 格式化hdfs

    hadoop namenode –format 
    (注意,这条命令最好手动输入,直接copy执行有可能会有问题)

    5、 启动NameNode

    首先在mast1上启动active节点,在liuyazhuang145上执行如下命令

    [root@liuyazhuang145 ~]# hadoop-daemon.sh start namenode 
    在liuyazhuang146上同步namenode的数据,同时启动standby的namenode,命令如下
    #把NameNode的数据同步到liuyazhuang146上  
    [root@liuyazhuang146 ~]# hdfs namenode -bootstrapStandby  
    #启动liuyazhuang146上的namenode作为standby  
    [root@liuyazhuang146 ~]# hadoop-daemon.sh start namenode  

    6、启动启动datanode

    在liuyazhuang145上执行如下命令

    [root@liuyazhuang145 ~]# hadoop-daemons.sh start datanode  

    7、 启动yarn

    在作为资源管理器上的机器上启动,我这里是liuyazhuang147,执行如下命令完成yarn的启动

    [root@liuyzhuang147 ~]# start-yarn.sh 

    8、启动ZKFC

    在liuyazhaung145上执行如下命令,完成ZKFC的启动

    [hadoop@liuyazhuang145 ~]# hadoop-daemons.sh start zkfc 
    全部启动完后分别在liuyazhuang145,liuyazhuang146,liuyazhuang147上执行jps是可以看到下面这些进程

    liuyazhuang145:
    [root@liuyazhuang145 ~]# jps
    3914 DFSZKFailoverController
    3557 DataNode
    4081 NameNode
    2552 QuorumPeerMain
    3357 JournalNode
    3669 NodeManager
    5716 Jps
    [root@liuyazhuang145 ~]# 
    
    liuyazhuang146:
    [root@liuyazhuang146 ~]# jps
    3719 NameNode
    3129 DataNode
    6543 Jps
    2460 QuorumPeerMain
    3451 DFSZKFailoverController
    3241 NodeManager
    3025 JournalNode
    [root@liuyazhuang146 ~]# 
    
    liuyazhuang147:
    [root@liuyazhuang147 ~]# jps
    2700 JournalNode
    2838 DataNode
    3569 Jps
    2952 ResourceManager
    3040 NodeManager
    2471 QuorumPeerMain
    [root@liuyazhuang147 ~]#

    四、测试HA的高可用性

    启动后liuyazhuang145的namenode和liuyazhuang146的namenode如下所示:

    此时,我们停掉liuyazhuang145主机上的namenode

    在liuyazhuang145主机上执行命令hadoop-daemon.sh stop namenode  ,此时liuyazhuang146上的namenode变为active状态


    此时,我们启动liuyazhuang145上的namenode,在命令行输入命令:hadoop-daemon.sh start namenode



    此时,我们看到liuyazhuang145上的namenode为standby状态  liuyazhuang146上的namenode为active状态

    如果liuyazhuang146上的namenode挂掉,liuyazhuang145上的namenode就会变为active状态,再次重启liuyazhuang146上的namenode,liuyazhuang146上的namenode即变为standby状态,实现了namenode的高可用。

    五、附录

    增减DataNode需要更改的文件:
    hdfs-site.xml
    slaves
    /etc/hosts

    另外如果新加入节点,需要更新集群内所有节点的公钥,以便互相之间可以无密码访问。


    至此,Hadoop2.5.2 HA高可靠性集群搭建(Hadoop+Zookeeper)搭建完毕。

    展开全文
  • 所谓HA,即高可用,实现高可用最关键的是消除单点故障,hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA;通过双namenode消除单点故障;通过双namenode协调工作
  • hadoop-ha全套.txt

    2019-05-13 17:09:25
    hadoop-HA集群搭建教程.包括HA高可用和内部全套的应用详细搭建,应用说明等等
  • hadoop 2.7.3 HA 安装指南

    千次阅读 2016-11-07 09:54:46
    Hadoop 2.7.3 HA 安装指南

    Hadoop 2.7集群安装

    安装Zookeeper集群

    安装ZooKeeper集群需要至少3个以上奇数个节点,具体安装细节,请查阅我的博客。

    Hadoop配置

    core-site.xml

    #修改为:

    <configuration>
       <property>
          <name>fs.defaultFS</name>
          <value>hdfs://hadoopmaster:9000</value>
           <description>NameNode URI</description>
     </property>
      <property>
          <name>dfs.journalnode.edits.dir</name>
          <value>/opt/h2/HA/data/jn</value>
           <description>journalnode</description>
     </property>
    </configuration>
    

    hdfs-site.xml

    <configuration>
        <property>
            <name>dfs.permissions.enabled</name>
            <value>false</value>
        </property>
        <property>
            <name>dfs.replication</name>
             <value>2</value>
      </property>
      <property>
       <name>dfs.namenode.name.dir</name>
        <value>/opt/h2/hdfs/namenode</value>
      </property>
      <property>
         <name>dfs.datanode.data.dir</name>
          <value>/opt/h2/hdfs/datanode</value>
      </property>
    
       <property>
             <name>dfs.nameservices</name>
             <value>ha-cluster</value>
       </property>
       <property>
             <name>dfs.ha.namenodes.ha-cluster</name>
             <value>nn1,nn2</value>
       </property>
        <property>
             <name>dfs.namenode.rpc-address.ha-cluster.nn1</name>
             <value>hadoopmaster:9000</value>
        </property>
        <property>
             <name>dfs.namenode.rpc-address.ha-cluster.nn2</name>
             <value>hadoopmaster2:9000</value>
        </property>
        <property>
             <name>dfs.namenode.http-address.ha-cluster.nn1</name>
             <value>hadoopmaster:50070</value>
        </property>
             <property>
             <name>dfs.namenode.http-address.ha-cluster.nn2</name>
             <value>hadoopmaster2:50070</value>
        </property>
        <property>
             <name>dfs.namenode.shared.edits.dir</name>
             <value>qjournal://hadoopmaster:8485;node1:8485;node2:8485/ha-cluster<value>
        </property>
    
        <property>
             <name>dfs.client.failover.proxy.provider.ha-cluster</name>
             <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property>
    
        <property>
             <name>dfs.ha.automatic-failover.enabled</name>
             <value>true</value>
        </property>
    
        <property>
                 <name>ha.zookeeper.quorum</name>
                 <value>192.168.2.76:2181,192.168.2.77:2181,192.168.2.88:2181</value>
        </property>
    
        <property>
             <name>dfs.ha.fencing.methods</name>
             <value>sshfence</value>
        </property>
    
        <property>
             <name>dfs.ha.fencing.ssh.private-key-files</name>
             <value>/home/app/.ssh/id_rsa</value>
        </property>
        <property>
           <name>dfs.ha.automatic-failover.enabled</name>
           <value>true</value>
         </property>
    </configuration>
    

    mapred-site.xml

    <configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <description>Execution framework.</description>
    </property>
    </configuration>
    

    yarn-site.xml

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
    
    <property>
            <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
    </property>
    </configuration>
    

    复制配置文件到各个node节点中,并且保证hadoopmaster、hadoopmaster2能够ssh到各个节点中,master机器可以彼此通信。具体细节,请参考hadoop集群安装的ssh设置步骤。

    启动进程操作

    启动journalnode

    在3个节点(hadoopmaster、node1、node2)上启动journalnode进程:

    hadoop-daemon.sh start journalnode
    

    格式化Zookeeper文件系统

    在active的namenode上运行:

    hdfs zkfc -formatZK
    

    格式化namenode

    在active的namenode格式化namenode,并启动namenode:

    hdfs namenode -format
    hadoop-daemon.sh start namenode
    

    在standby的namenode格式化namenode:

    hdfs namenode -bootstrapStandby
    

    启动hadoop所有进程

    先stop已经启动的进程,然后,再启动hadoop所有进程。

    stop-all.sh
    start-all.sh
    

    查看运行的进程

    active的master进程:

    $ jps
    2551 JournalNode
    2839 ResourceManager
    2329 NameNode
    2731 DFSZKFailoverController
    3102 Jps
    25934 JobHistoryServer
    

    standby的master进程:

    $ jps
    11668 DFSZKFailoverController
    11550 NameNode
    11743 Jps
    

    node1:

    $ jps
    4035 NodeManager
    3924 JournalNode
    4164 Jps
    3818 DataNode
    

    node2:

    $ jps
    17459 NodeManager
    17588 Jps
    17349 JournalNode
    17243 DataNode
    

    浏览WEB UI

    MapReduce 管理页面:

    http://{hadoopmaster}:50070/
    

    http://{hadoopmaster}:50070/
    

    验证HA

    kill掉active的namenode,看看standby的namnode是否会变成active的。

    http://{hadoopmaster2}:50070/
    

    http://{hadoopmaster2}:50070/dfshealth.html#tab-datanode
    

    验证HA有效,并且是成功的。

    欢迎加入微信公众号
    大数据与云计算核心技术

    展开全文
  • Hadoop-ha集群搭建

    2018-10-09 15:48:16
    HadoopHA集群搭建描述及指令,里面有各种注意事项。 集群部署节点角色的规划(3节点) ------------------ server01 namenode resourcemanager zkfc nodemanager datanode zookeeper journal node server02 ...
  • 文章目录Hadoop-HA集群配置1 环境准备2 规划集群3 配置Zookeeper集群HDFS-HA配置4 配置HDFS-HA集群5 启动HDFS-HA集群6 配置HDFS-HA自动故障转移YARN-HA配置7 YARN-HA工作机制8 配置YARN-HA集群 1 环境准备 (1)修改...
  • Hadoop2.0 HA安装完整版——Hadoop2.7.3

    千次阅读 2019-01-15 14:47:27
    Hadoop2.0 HA安装完整版——Hadoop2.7.3 Hadoop从2008年发布,到现在已经11个年头了。Hadoop安装是任何一个大数据开发或运维人员都必须掌握的。本文尽可能详细的介绍hadoop 高可用的安装并对参数做一定的介绍(用 ...
  • hadoop-HA搭建

    2018-08-14 16:19:41
    这个文档是本人搭建成功的步骤,能正常使用,里面配置了首先自己要步骤进行
  • journalnode(3) namenode(2) datanode(3) resourcemanager(2) nodemanager(3) 富人版13台主机: ...hadoop-ha-journalnode-a ...hadoop-ha-journalnode-b ...hadoop-ha-journalnode-c ...hadoop-ha-name
  • Hadoop HA部署

    2018-04-01 09:22:36
    Hadoop HA部署流程文件 Hadoop HA部署流程文件 Hadoop HA部署流程文件 Hadoop HA部署流程文件
  • HadoopHA

    2018-09-26 17:43:55
    目录 1、HDFS概述 ...Hadoop的四大组件: HDFS:分布式存储系统 MapReduce:分布式计算系统 YARN:Hadoop的资源调度系统 Common:以上三大组件的底层支撑组件,主要提供基础工具包和RPC工...
  • hadoop-HA集群搭建步骤

    千次阅读 2020-11-06 20:23:30
    hadoop-HA集群搭建步骤 hadoop-HA集群搭建步骤 修改core-site.xml 修改hdfs-site.xml 修改mapred-site.xml 修改yarn-site.xml 修改slaves 将软件拷贝到所有节点 配置免密码登陆 启动zookeeper集群(分别在...
  • hadoop2.7.3 HA YARN 环境搭建

    千次阅读 2016-12-09 15:22:59
    hadoop2.7.3 HA YARN 环境搭建 本文主要参考: http://www.cnblogs.com/captainlucky/p/4654923.html 本文实现前提: 1、已经能够搭建hadoop HA集群,并且正常运行。如果还只是基本的hadoop的完全分布式集群,...
  • Hadoop技术之Hadoop HA 机制详解

    万次阅读 2018-08-11 09:12:22
    导语 最近分享过一次关于Hadoop技术主题的演讲,由于接触时间不长,很多技术细节认识不够,也没讲清楚,作为一个技术...网上关于Hadoop HA的资料多集中于怎么搭建HA,对于HA为什么要这么做描述甚少,所以本文对...
  • hadoop-ha配置

    千次阅读 2014-05-15 20:25:05
    hadoop2.x的ha配置,此文档描述有hdfs与yarn的ha配置。 此文档的假定条件是zk已经安装并配置完成,其实也没什么安装的。 hdfs ha配置 首先,先配置core-site.xml配置文件: 在老版本使用mr1时,还可能...
  • HadoopHA实现

    千次阅读 2017-03-02 01:16:00
    为了确保高可用,我们需要实现HadoopHA。 关键点在于:当一台NameNode宕机之后,如何做到无缝切换到另一台NameNode。 为了解决这个问题,我们首先需要讨论以下几个问题 能否让两台NN都正常响应客户的请求? ...
  • Hadoop-HA模式(详解)

    万次阅读 多人点赞 2018-08-21 17:30:47
    Hadoop-HA模式大致分为两个(个人在学习的理解): namenode 高可用 yarn 高可用 1、Namenode HA Namenode在HDFS是一个非常重要的组件,相当于HDFS文件系统的心脏,在显示分布式集群环境,还是会有可能...
  • Hadoop 2.2.0 HA配置

    千次阅读 2014-08-01 17:26:55
    hadoop 2.2.0提供了HA的功能,本文在前文的基础上介绍hadoop 2.2.0HA的配置。 说明: 下文的两台namenode机器名分别是namenode1和namenode2.其中namenode1为active node,namenode2为standby na
  • 什么是HadoopHA机制?

    千次阅读 2018-07-04 10:11:11
    HadoopHA机制前言:正式引入HA机制是从hadoop2.0开始,之前的版本没有HA机制1.1 HA的运作机制(1)hadoop-HA集群运作机制介绍所谓HA,即高可用(7*24小时不中断服务)实现高可用最关键的是消除单点故障hadoop-ha...
  • 详细的 hadoopHA)高可用配置文件内容,以及注释摘要。四个配置文件详细内容。
  • hadoop+ha+hive+mapreduce

    2018-04-09 21:04:44
    hadoop+ha+hive+mapreduce,包括hdfs,mapreduce,hive详细原理以及生产实战,还有hdfs的高可用性等等
  • Hadoop 3.3.0 HA(高可用)集群搭建

    千次阅读 2020-08-14 09:24:59
    Hadoop 3.3.0 HA模式搭建
  • 一步一步安装hadoop2.7.1 HA Hadoop HA高可用架构图: 3台虚拟机节点分部: --不用图形界面 [root@node1 ~]# vi /etc/inittab id:3:initdefault: --linux基本设置 ifconfig 192.168.88.128 192.168....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,457
精华内容 14,582
关键字:

hadoop中的ha