hdfs yarn 启动成功后访问的地址如下:
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
相关推荐
配置Hadoop HA集群需要对这些文件进行精确调整,以实现命名节点的自动故障切换、保证数据的安全性和一致性,以及优化资源分配和任务调度。在实际操作中,还需要关注其他配置,比如Zookeeper的设置(用于协调NN的故障...
【Hadoop HA 集群部署与 YARN HA 测试Job 教学】 在大数据处理领域,Hadoop 是一个至关重要的分布式计算框架,它提供了高可用性(HA)的特性来确保服务的连续性和稳定性。Hadoop HA 主要指的是 HDFS(Hadoop ...
【Hadoop HA集群部署】是高可用(High Availability)配置的一种,主要目的是为了确保Hadoop分布式文件系统在遇到单点故障时,能够自动切换到备用节点,保证服务不间断。这通常涉及到NameNode HA,Secondary NameNode...
hadoop HA 搭建 包含 hdfs HA 集群搭建 以及yarn HA 集群搭建 适用于hadoop所有版本
在搭建Hadoop 2.6集群环境时,我们需要关注几个关键组件:HDFS(Hadoop Distributed File System)的高可用性(HA)以及YARN(Yet Another Resource Negotiator)。这个过程涉及多台虚拟机的配置,包括安装操作系统...
2. **安装Hadoop**:解压Hadoop安装包,根据集群规模配置Hadoop的`core-site.xml`、`hdfs-site.xml`、`yarn-site.xml`和`mapred-site.xml`等配置文件,设置HA相关参数,如`ha.zookeeper.quorum`(ZooKeeper服务器...
在搭建Hadoop 2.6.4 HA集群之前,我们需要进行以下准备工作: 1. **配置Linux环境**:首先确保所有节点的操作系统版本一致,并且已安装必要的软件包。此外,还需要设置正确的主机名和IP地址映射。 2. **网络配置**...
本教程“Hadoop集群搭建详细简明教程”将带你逐步走进Hadoop的世界,了解并掌握如何构建一个高效稳定的Hadoop集群。 Hadoop是由Apache基金会开发的一个开源项目,其核心包括两个主要组件:Hadoop Distributed File ...
所谓HA,即高可用,实现高可用最关键的是消除单点故障,hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA;通过双namenode消除单点故障;通过双namenode协调工作
当前环境: centos6.5,jdk8 准备工作: 1.服务器之间免密登录 $ ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa $ cat ~/.ssh/id_dsa.pub >> ~/....https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.3/ha
本教程将详细阐述Hadoop3的基础知识及其高可用性(High Availability,简称HA)的搭建方法。 首先,我们需要理解Hadoop的核心组件:HDFS(Hadoop Distributed File System)和YARN(Yet Another Resource ...
2. **Hadoop HA集群部署模式** Hadoop HA主要包括两个部分:NameNode HA和ResourceManager HA。NameNode负责管理HDFS的元数据,而ResourceManager则管理YARN的资源分配。DataNode和NodeManager设计时已考虑了高可用...
### Hadoop HA高可用集群配置详解 #### 一、引言 Hadoop 是一个能够对大量数据进行分布式处理的软件框架。随着业务需求的增长和技术的发展,对于数据处理平台的稳定性和可靠性提出了更高的要求。Hadoop HA(High ...
总之,配置Hadoop HA集群是一个复杂的过程,涉及到多个组件的协同工作,尤其是ZooKeeper作为基石,对于整个集群的稳定性和高可用性至关重要。正确配置和管理ZooKeeper集群是实现Hadoop HA的关键步骤之一。
编写和运行Hadoop MapReduce程序,验证HA集群是否能正确处理NameNode故障切换,保证服务的连续性。 七、集群二次启动 了解如何在系统重启或节点故障后正确启动集群,确保在任何情况下都能快速恢复服务。 八、踩坑...
HadoopHA高可用集群配置 yarn-site.xml slave
Hadoop HA集群通过提供数据的冗余与故障转移机制来保障系统高可用性。本文档针对搭建Hadoop HA分布式集群的详细步骤进行说明,并涵盖了一些基础知识点和配置细节。 ### 主要知识点: #### 1. 配置集群各节点SSH免密...
在搭建Hadoop集群前,你需要在所有节点上安装这个JDK,并配置好`JAVA_HOME`环境变量,确保Hadoop能够找到Java环境。 接下来,我们来看`hadoop-2.7.5.tar.gz`,这是Apache Hadoop 2.7.5的源代码压缩包。Hadoop是一个...
### hadoop HA高可用性完全分布式集群安装 在大数据处理领域,Hadoop作为一个开源软件框架,主要用于分布式存储和处理...希望本文能为读者提供有价值的信息和指导,帮助大家更好地理解和掌握Hadoop HA集群的构建方法。