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 搭建 包含 hdfs HA 集群搭建 以及yarn HA 集群搭建 适用于hadoop所有版本
Hadoop HA 集群搭建所需要的配置文件:core-site,hdfs-site,mapred-site,yarn-site四个xml文件和一个slaves文件
YARN HA 配置、启动与验证;YARN HA 配置、启动与验证;任务一 配置SSH无密钥登录(slave2为主节点);任务二 修改yarn-site.xml配置文件(一);任务二 修改yarn-site.xml配置文件(二);...任务七 验证集群YARN与日志服务
YARN HA 测试Job YARN HA 测试Job 序号 任务名称 任务一 准备MapReduce输入文件 任务二 将输入文件上传到HDFS 任务三 运行MapReduce程序测试Job 任务一 准备MapReduce输入文件 在master主节点,使用 root 用户登录,...
所谓HA,即高可用,实现高可用最关键的是消除单点故障,hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA;通过双namenode消除单点故障;通过双namenode协调工作
HadoopHA高可用集群配置 yarn-site.xml master2
当前环境: 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
HadoopHA高可用集群配置 yarn-site.xml slave
hadoop-HA集群运作机制介绍 所谓HA,即高可用(7*24小时不中断服务),实现高可用最关键的是消除单点故障。hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA.
1、笔记本4G内存 ,操作系统WIN7 (屌丝的配置) 2、工具VMware Workstation 3、虚拟机:CentOS6.4共四台 每台机器:内存512M,硬盘40G,网络适配器:NAT模式 边看边操作 (本人原创)
HadoopHA高可用集群配置 yarn-site.xml yarn两台namenode配置不同
cdh5.5.4 集群搭建 【自动化脚本+hadoop-ha,yarn-ha,zk,hbase,hive,flume,kafka,spark】全套高可用环境搭建,还有自动化启动脚本。只需要复制粘贴命令,就可以完成。3台机器。相关资源可以留言发邮件,我发资料。cdh...
搭建高可用的Hadoop集群,基于NFS共享磁盘的namenode配置,使用zookeeper进行主节点推举
hadoop 搭建过程
hadoop-HA集群运作机制介绍 所谓HA,即高可用(7*24小时不中断服务),实现高可用最关键的是消除单点故障。hadoop-ha严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA
hadoop集群搭建高可用文档在Hadoop2.x之后的版本,提出了解决单点问题的方案--HA(High Available 高可用)。这篇博客阐述如何搭建高可用的HDFS和YARN,执行步骤如下: 创建hadoop用户 安装JDK 配置hosts 安装SSH ...
在上述Hadoop集群搭建完成之后,若要启用HA还需要对hdfs-site.xml和core-site.xml两个文件进行一点额外的配置。 hdfs-site.xml dfs.nameservices hadoop-cluster dfs.ha.namenodes.hadoop-cluster
视频详细讲解,需要的小伙伴...你将通过本课程学习到,Hadoop存在的单点故障问题,解决单点故障的方案,搭建手动故障转移的HDFS-HA集群,搭建基于Zookeeper的自动故障转移的HDFS-HA集群以及自动故障转移的Yarn-HA集群。
脚本功能:启动集群 前提:配置好执行脚本的主机到其他主机的ssh登录 脚本使用:vim编辑脚本,按照自己的配置修改主机号,我的是hadoop1、2是NN;hadoop2、3是Spark Master;hadoop3还是RM;hadoop4、5、6是DN、NM、...
第五天 hadoop2.x中HA机制的原理和全分布式集群安装部署及维护 01-zookeeper.avi 02-zookeeper2.avi 03-NN高可用方案的要点1.avi 04-hadoop-HA机制的配置文件.avi 05-hadoop分布式集群HA模式部署.avi 06-hdfs...