`

hadoop2 搭建自动切换的ha集群 yarn集群

 
阅读更多

 

hdfs yarn 启动成功后访问的地址如下:

http://h2master:50070/    hdfs

http://h2master:8088/cluster   yarn

 

 

0) 自动切换流程简介:
FailoverController Active
FailoverController Standby
分别作为zk集群在namenode集群的代理
代理人感知到namenode集群出现了问题后,
zk集群会通过代理人FailoverController
将amenode集群中standby状态改为active


自动切换ha集群图如下:

FailoverController服务是zk的代理 ,内嵌在namenode服务中,接收zk的监督,

当某个namenode挂掉后,zk会通过shell脚本启动namenode standby节点变成active节点。

 

 



 


1) 各节点角色:
namenode:h2master h2master2
datanode:h2sliver112 h2sliver113 h2sliver114
journalnode:h2master h2master2 h2sliver112
zookeeper: h2master h2master2 h2sliver112

 

2)hadoop2 搭建手工切换ha的hdfs集群基础上:

a) 关闭所有启动角色
b) 删除所有机器/usr/local/hadoop2.5/tmp 和 /usr/local/hadoop2.5/logs的内容


3) zookeeper集群安装:

a) h2master上安装zookeeper
	a.1)把conf/zoo_sample.cfg重命名为conf/zoo.cfg  mv zoo_sample.cfg zoo.cfg
	a.2)修改文件conf/zoo.cfg
	 1)dataDir=/usr/local/zookeeper/data
	 2)增加以下内容
	 server.1=h2master:2888:3888   ---> 标识1 是h2master对应在zookeeper集群的编号 2888:3888是数据通信端口
	 server.2=h2master2:2888:3888  ---> 标识2 是h2master2对应在zookeeper集群的编号 2888:3888是数据通信端口
	 server.3=h2sliver112:2888:3888 ---> 标识3 是h2sliver112对应在zookeeper集群的编号 2888:3888是数据通信端口
	a.3) mkdir zookeeper/data 
	[root@h2master zookeeper]# mkdir data
    a.4) 写入文件echo 1到 zookeeper/data/myid 这样在本机h2master内写上标识1 两者关联起来
	[root@h2master zookeeper]# echo 1 > data/myid

	
b) 复制zookeeper文件夹到h2master2、h2sliver112上

    scp -rq zookeeper  h2master2:/usr/local
    scp -rq zookeeper  h2sliver112:/usr/local
	
	
c) 其余节点写标识
	在h2master2上执行命令echo 2 zookeeper/data/myid
    在h2sliver112上执行命令echo 3 zookeeper/data/myid


d) 启动和验证
	在h2master、h2master2、h2sliver112上,分别执行命令zookeeper/bin/zkServer.sh start
	执行命令zookeeper/bin/zkServer.sh status 可以看到三个节点的状态 哪个是leader 哪个是follower 
 

 

4) hdfs配置文件:(hadoop-env.sh、core-site.xml、hdfs-site.xml、slaves)

 

2.1 配置文件(hadoop-env.sh、core-site.xml、hdfs-site.xml、slaves)
2.1.1 hadoop-env.sh
  export JAVA_HOME=/usr/local/jdk1.7
2.1.2 core-site.xml

<property>
<name>fs.defaultFS</name>
<value>hdfs://cluster1</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop2.5/tmp</value>
</property>

<property>
<name>ha.zookeeper.quorum</name>    ------ 配置zk集群
<value>h2master:2181,h2master2:2181,h2sliver112:2181</value>
</property>


2.1.3 hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>

<property>
<name>dfs.nameservices</name> ----每个nameservice对应一个hdfs集群
<value>cluster1</value>
</property>

<property>
<name>dfs.ha.namenodes.cluster1</name>
<value>h2master,h2master2</value>
</property>

<property>
<name>dfs.namenode.rpc-address.cluster1.h2master</name>
<value>h2master:9000</value>
</property>

<property>
<name>dfs.namenode.http-address.cluster1.h2master</name>
<value>h2master:50070</value>
</property>

<property>
<name>dfs.namenode.rpc-address.cluster1.h2master2</name>
<value>h2master2:9000</value>
</property>

<property>
<name>dfs.namenode.http-address.cluster1.h2master2</name>
<value>h2master2:50070</value>
</property>

<property>
<name>dfs.ha.automatic-failover.enabled.cluster1</name>
<value>true</value>
</property>

<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://h2master:8485;h2master2:8485;h2sliver112:8485/cluster1</value>
</property>

<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/hadoop2.5/tmp/journal</value>
</property>

<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>

<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>

<property>
<name>dfs.client.failover.proxy.provider.cluster1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

2.1.6 slaves -----> 指定NodeManager 和 datanode 
h2sliver112  
h2sliver113  
h2sliver114  


 

 

 

5) 删除其他节点的hadoop文件夹,修改好后拷贝到其余节点
scp -r /usr/local/hadoop2.5  h2master2:/usr/local/

 

6) 启动hadoop2 hdfs集群

 

6.1) 格式化zk集群
  在h2master上执行hadoop2.5/bin/hdfs zkfc -formatZK   此操作仅仅表示和zk集群发生关联
  15/01/11 18:14:20 INFO ha.ActiveStandbyElector: Successfully created /hadoop-ha/cluster1 in ZK.

6.2) 启动journalnode集群
  在h2master、h2master2、h2sliver112上分别执行hadoop/sbin/hadoop-daemon.sh start journalnode
6.3) 格式化namenode、启动namenode
  在h2master上执行bin/hdfs namenode -format
  在h2master上执行sbin/hadoop-daemon.sh start namenode
  在h2master2上执行bin/hdfs namenode -bootstrapStandby
  在h2master2上执行sbin/hadoop-daemon.sh start namenode
6.4)  启动datanode
  在h2master上执行hadoop/sbin/hadoop-daemons.sh start datanode   启动所有datanode节点
  此时访问如下链接
  http://h2master:50070/ http://h2master2:50070/
  两个namenode都是standby状态
6.5)  启动ZKFC (FailoverController) 必须是在namenode节点上启动 让zk来决定用哪个namenode作为active
  在h2master、h2master上 启动zkfc,执行命令sbin/hadoop-daemon.sh start zkfc
  此时访问   http://h2master:50070/ http://h2master2:50070/ 结果如下:
  Overview 'h2master:9000' (active)
  Overview 'h2master2:9000' (standby)

 

7) 验证自动切换:

 

  关闭h2master的namenode进程:
  再次刷新
   http://h2master:50070/ http://h2master2:50070/ 结果如下:
   Overview 'h2master2:9000' (active)  ----> zk自动切换节点h2master2为active状态
   h2master无法连接

 

8) 总结:自动切换比手工切换多出来的步骤


  (1)配置上core-site.xml增加了配置项ha.zookeeper.quorum(zk集群的配置);
     hdfs-site.xml中把dfs.ha.automatic-failover.enabled.cluster1改为true
  (2)操作上格式化zk,执行命令bin/hdfs zkfc -formatZK;
     启动zkfc,执行命令sbin/hadoop-daemon.sh start zkfc
  

 

 

 如下操作不需要关闭所有服务,仅需要对yarn涉及到的服务进行关闭开启即可

 

 9) 搭建yarn集群:  仅需要配置Resourcemanager即可

 

 

为了能够运行MapReduce程序,需要让各个NodeManager在启动时加载shuffle server,shuffle server实际上是Jetty/Netty Server,Reduce Task通过该server从各个NodeManager上远程拷贝Map Task产生的中间结果。 这就是配置

yarn.nodemanager.aux-services的作用

 

集群各节点上:

修改配置文件 yarn-site.xml

<property>
<name>yarn.resourcemanager.hostname</name> ----  指定resourcemanager是哪个节点
<value>h2master</value>
</property>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<property>   // 开启日志归集 这样在8088节点上能看到日志信息
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>



修改配置文件 mapred-site.xml

<property>
<name>mapreduce.framework.name</name>  --- 指定mapreduce 运行形式使用yarn
<value>yarn</value>
</property>


启动在h2master上执行 hadoop/sbin/start-yarn.sh


后访问:
http://h2master:8088/cluster

 

10 yarn上启动historyserver(目的,在页面上可以看任务执行的所有节点日志信息汇总)

 

1.在mapred-site中配置
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>h2master:10020</value>
        <description>MapReduce JobHistory Server host:port.    Default port is 10020.</description>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name> ---指定historyserver在web端访问地址
        <value>h2master:19888</value>
        <description>MapReduce JobHistory Server Web UI host:port. Default port is 19888.</description>
    </property>
 <property>
        <name>mapreduce.jobhistory.intermediate-done-dir</name>  ---指定historyserver收集各节点日志后存放的数据路径
        <value>/usr/local/hadoop2.5/tmp/mr_history</value>
        <description>Directory where history files are written by MapReduce jobs.</description>
    </property>
    <property>
        <name>mapreduce.jobhistory.done-dir</name>
        <value>/usr/local/hadoop2.5/tmp/mr_history</value>
        <description>Directory where history files are managed by the MR JobHistory Server.</description>
    </property>

2.在yarn-site.xml中配置
<property>  
    <name>yarn.log-aggregation-enable</name>   ---启动historyserver收集各节点日志功能这样才能在web端的访问地址上统一查看日志
    <value>true</value>  
</property>   




3.配置文件复制到集群的其他节点

4.重新启动yarn平台
  h2master上
  sbin/stop-yarn.sh
  sbin/start-yarn.sh

  最后执行sbin/mr-jobhistory-daemon.sh start historyserver

 

 

 

  • 大小: 115.6 KB
分享到:
评论

相关推荐

    HadoopHA集群配置文件

    配置Hadoop HA集群需要对这些文件进行精确调整,以实现命名节点的自动故障切换、保证数据的安全性和一致性,以及优化资源分配和任务调度。在实际操作中,还需要关注其他配置,比如Zookeeper的设置(用于协调NN的故障...

    HadoopHA集群部署、YARNHA测试Job教学课件.pptx

    【Hadoop HA 集群部署与 YARN HA 测试Job 教学】 在大数据处理领域,Hadoop 是一个至关重要的分布式计算框架,它提供了高可用性(HA)的特性来确保服务的连续性和稳定性。Hadoop HA 主要指的是 HDFS(Hadoop ...

    HadoopHA集群部署、YARNHA配置、启动与验证教学课件.pptx

    【Hadoop HA集群部署】是高可用(High Availability)配置的一种,主要目的是为了确保Hadoop分布式文件系统在遇到单点故障时,能够自动切换到备用节点,保证服务不间断。这通常涉及到NameNode HA,Secondary NameNode...

    hadoop - HA 集群搭建.txt 详细过程

    hadoop HA 搭建 包含 hdfs HA 集群搭建 以及yarn HA 集群搭建 适用于hadoop所有版本

    Hadoop2.6集群环境搭建(HDFS HA+YARN)

    在搭建Hadoop 2.6集群环境时,我们需要关注几个关键组件:HDFS(Hadoop Distributed File System)的高可用性(HA)以及YARN(Yet Another Resource Negotiator)。这个过程涉及多台虚拟机的配置,包括安装操作系统...

    hadoopHA搭建资源包

    2. **安装Hadoop**:解压Hadoop安装包,根据集群规模配置Hadoop的`core-site.xml`、`hdfs-site.xml`、`yarn-site.xml`和`mapred-site.xml`等配置文件,设置HA相关参数,如`ha.zookeeper.quorum`(ZooKeeper服务器...

    hadoop2.6.4-ha集群搭建

    在搭建Hadoop 2.6.4 HA集群之前,我们需要进行以下准备工作: 1. **配置Linux环境**:首先确保所有节点的操作系统版本一致,并且已安装必要的软件包。此外,还需要设置正确的主机名和IP地址映射。 2. **网络配置**...

    Hadoop集群搭建详细简明教程

    本教程“Hadoop集群搭建详细简明教程”将带你逐步走进Hadoop的世界,了解并掌握如何构建一个高效稳定的Hadoop集群。 Hadoop是由Apache基金会开发的一个开源项目,其核心包括两个主要组件:Hadoop Distributed File ...

    Hadoop2.0 HA集群搭建步骤

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

    hadoop3.1.3集群搭建(ha+yarn)

    当前环境: centos6.5,jdk8 准备工作: 1.服务器之间免密登录 $ ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa $ cat ~/.ssh/id_dsa.pub &gt;&gt; ~/....https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.3/ha

    Hadoop3以及高可用HA搭建方式.zip

    本教程将详细阐述Hadoop3的基础知识及其高可用性(High Availability,简称HA)的搭建方法。 首先,我们需要理解Hadoop的核心组件:HDFS(Hadoop Distributed File System)和YARN(Yet Another Resource ...

    HadoopHA集群部署、规划HadoopHA集群教学课件.pptx

    2. **Hadoop HA集群部署模式** Hadoop HA主要包括两个部分:NameNode HA和ResourceManager HA。NameNode负责管理HDFS的元数据,而ResourceManager则管理YARN的资源分配。DataNode和NodeManager设计时已考虑了高可用...

    HadoopHA高可用集群配置 yarn-site.xml master2

    ### Hadoop HA高可用集群配置详解 #### 一、引言 Hadoop 是一个能够对大量数据进行分布式处理的软件框架。随着业务需求的增长和技术的发展,对于数据处理平台的稳定性和可靠性提出了更高的要求。Hadoop HA(High ...

    Hadoop HA集群配置.docx

    总之,配置Hadoop HA集群是一个复杂的过程,涉及到多个组件的协同工作,尤其是ZooKeeper作为基石,对于整个集群的稳定性和高可用性至关重要。正确配置和管理ZooKeeper集群是实现Hadoop HA的关键步骤之一。

    HA-Hadoop集群搭建教程(图文+视频)1

    编写和运行Hadoop MapReduce程序,验证HA集群是否能正确处理NameNode故障切换,保证服务的连续性。 七、集群二次启动 了解如何在系统重启或节点故障后正确启动集群,确保在任何情况下都能快速恢复服务。 八、踩坑...

    HadoopHA高可用集群配置 yarn-site.xml slave

    HadoopHA高可用集群配置 yarn-site.xml slave

    搭建Hadoop HA分布式集群.pdf

    Hadoop HA集群通过提供数据的冗余与故障转移机制来保障系统高可用性。本文档针对搭建Hadoop HA分布式集群的详细步骤进行说明,并涵盖了一些基础知识点和配置细节。 ### 主要知识点: #### 1. 配置集群各节点SSH免密...

    Hadoop分布式集群搭建所需安装包资源

    在搭建Hadoop集群前,你需要在所有节点上安装这个JDK,并配置好`JAVA_HOME`环境变量,确保Hadoop能够找到Java环境。 接下来,我们来看`hadoop-2.7.5.tar.gz`,这是Apache Hadoop 2.7.5的源代码压缩包。Hadoop是一个...

    hadoop HA高可用性完全分布式集群安装

    ### hadoop HA高可用性完全分布式集群安装 在大数据处理领域,Hadoop作为一个开源软件框架,主要用于分布式存储和处理...希望本文能为读者提供有价值的信息和指导,帮助大家更好地理解和掌握Hadoop HA集群的构建方法。

Global site tag (gtag.js) - Google Analytics