栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

搭建Hadoop高可用集群

搭建Hadoop高可用集群

一、部署集群节点

规划整个集群由3台虚拟机组成,部署规划如下:

服务器NameNodeDataNodeResourceManagerNodeManagerJournalNodeZookeeperZKFC
hadoop01
hadoop02
hadoop03
二、环境准备

首先搭配普通Hadoop集群,有三台虚拟机,分别为:hadoop01、hadoop02、hadoop03

三、配置Hadoop高可用集群

(以下文件都在解压后hadoop…文件下的etc/hadoop里)

1、修改core-site.xml文件在该文件配置HDFS端口,指定Hadoop临时目录和Zookeeper集群地址:

        
        
                fs.defaultFS
                hdfs://ns1
        
        
        
                hadoop.tmp.dir
                /export/servers/hadoop-2.7.4/tmp
         
        
        
                ha.zookeeper.quorum
                hadoop01:2181,hadoop02:2181,hadoop03:2181
         

2、修改hdfs-site.xml文件配置两台NameNode的端口地址和通信方式,并指定NameNode的元数据的存放位置,开启NameNode失败自动切换以及配置sshfence(通过ssh远程登录到前一个ActiveNameNode并将其结束进程)

(首先得创建/export/data/hadoop/name、/export/data/hadoop/data、/export/data/hadoop/journaldata这三个目录)


        
        
                dfs.replication
                2
        
        
        
                dfs.namenode.name.dir
                file:/export/data/hadoop/name
        
        
        
                dfs.datanode.data.dir
                file:/export/data/hadoop/data
        

        
                dfs.webhdfs.enabled
                true
        
        
        
        
                dfs.nameservices
                ns1
        
        
        
                dfs.ha.namenodes.ns1
                nn1,nn2
        
        
        
                dfs.namenode.rpc-address.ns1.nn1
                hadoop01:9000
        
        
        
                dfs.namenode.http-address.ns1.nn1
                hadoop01:50070
        
        
        
                dfs.namenode.rpc-address.ns1.nn2
                hadoop02:9000
        
        
                
                dfs.namenode.http-address.ns1.nn2
                hadoop02:50070
        
        
        
                dfs.namenode.shared.edits.dir
                qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns1
        
        
        
                dfs.journalnode.edits.dir
                /export/data/hadoop/journaldata
        

        
                dfs.ha.automatic-failover.enabled
                true
        
        
        
                dfs.client.failover.proxy.provider.ns1
                org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
        
        
        
                dfs.ha.fencing.methods
                
                       sshfence
                       shell(/bin/true)
                
        
        
                
                dfs.ha.fencing.ssh.private-key-files
                /root/.ssh/id_rsa
        
        
        
                dfs.ha.fencing.ssh.connect-timeout
                30000
        

3、修改mapred-site.xml文件配置MapReduce计算框架为YARN方式

        
                mapreduce.framework.name
                yarn
        

4、修改yarn-site.xml文件,开启ResourceManager高可用,指定RescoureManager的端口名称地址,并配置Zookeeper集群地址

        
                yarn.nodemanager.resource.memory-mb
                2048
        
        
                yarn.scheduler.maximum-allocation-mb
                2048
        
        
                yarn.nodemanager.resource.cpu-vcores
                1
        
        
                yarn.resourcemanager.ha.enabled
                true
        
        
                
                yarn.resourcemanager.cluster-id
                yrc
        
        
        
                yarn.resourcemanager.ha.rm-ids
                rm1,rm2
        
        
        
                yarn.resourcemanager.hostname.rm1
                hadoop01
        
        
                yarn.resourcemanager.hostname.rm2
                hadoop02
                
        
        
                yarn.resourcemanager.zk-address
                hadoop01:2181,hadoop02:2181,hadoop03:2181
        
        
                yarn.nodemanager.aux-services
                mapreduce_shuffle
        

5、修改slaves,配置集群主机名称
hadoop01
hadoop02
hadoop03
6、修改hadoop-env.sh,配置JDK环境变量(首先看你的jdk放在哪个目录)

7、将配置好的文件分发传送给hadoop02和hadoop03 四、启动Hadoop高可用集群
  1. 启动集群各个节点的Zookeeper服务,命令如下:
    zkServer.sh start
  2. 启动集群各个节点监控NameNode的管理日志JournalNode,命令如下:
    hadoop-daemon.sh start journalnode

  3. 在hadoop01节点格式化NameNode,并将格式化后的目录复制到hadoop02中,具体命令如下:
    hadoop namenode -format
    
    scp -r /export/data/hadoop hadoop02:/export/data
  4. 在hadoop01节点上格式化ZKFC,命令如下:(为了连接上zookeeper集群,然后在zookeeper集群上面创建一个znode节点: /hadooop-ha/ns1,所以在哪里格式化zkfc其实不并重要,重要的是在zookeeper集群上创建znode。)
    hdfs zkfc -formatZK

  5. 在hadoop01节点上启动HDFS,命令如下:
    start-dfs.sh
    
    (可以看到启动了两个namenode一主一备、三个datanode,三个journalnode、两个zkfc)

  6. 在hadoop01节点上启动Yarn,命令如下:
    start-yarn.sh

  7.   用jps查看进程

  8. 在hadoop02节点上手动启动备用的resourcemanager

    sbin/yarn-daemon.sh start resourcemanager

  9. 最后通过宿主机浏览器分别访问http://ip地址:50070和http://ip地址:8088查看HDFS和YARN集群状态,效果如下: 

     

     

     

     

    从上面可以看出:

    在高可用集群HDFS集群中,通常有两台或两台以上的机器充当NameNode,在任意时间内,都要保证至少有一台机器处于活动状态(Active)状态,一台机器处于备用状态。处于活动状态的NameNode负责处理客户端请求,而处于备用状态的NameNode则处于“随时待命状态”。

  10.  

    需注意的问题:在以后启动hadoop和zookeeper过程中,要先启动zookeeper,再启动hadoop,否则会出现以下问题:

    用jps查看的时候没有ZKFC(故障恢复控制器)

  11. 总结

    Hadoop Ha集群搭建的启动步骤

    HDFS高可用启动顺序主要分为以下几步:

    (1)启动所有journalNode进程,用来存之后namenode的元数据

    (2)格式化主namenode,并启动主namenode进程

    (3)将主namenode上的元数据信息复制到从的namenode所在节点

    (4)在主namenode上格式化ZKFC,只需要在主namenode上进行即可

    (5)停掉所有Journalnode进程和主namenode

    (6)使用start-dfs.sh脚本一次性启动所有HDFS的进程

    Yarn高可用启动顺序主要分以下几步:

    (1)直接在主的ResourceManager上利用start-yarn.sh脚本启动yarn集群

    (2)在从的ResourceManager上手动启动从resourcemanager进程

     

 

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677184.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号