Hadoop HA 架构
为什么要用集群?
企业里面,多台机器 伪分布式 每一个角色都是一个进程
HDFS:
NN
SNN
DN
YARN:
RM
NM
大数据所有组件, 都是主从架构 master-slave
HDFS读写请求都是先到NN节点,
但是,HBase 读写请求不是经过master, 建表和删除表是需要经过master
NN节点挂了,就不能提供对外服务 (-put,-get)
需要配置两个NN节点(实时的,任何时刻只有一台active对外,
另外一台是standby,做实时备份,
随时准备着从standby切换到active状态,对外服务)
NN1 active 11:00点,挂了 hdfs://ip1:8020/ 代码,shell脚本
NN2 standby active hdfs://ip2:8020/
当前对外提供服务的只有一台机器提供,另外一台机器随时准备着
SNN 1h checkpoint 提供备份(fsimage+editlog)
如果有了HA,就不需要SNN了
假设11:00点,NN1挂了,NN2会在一刹那间,切换成active,对外服务.
无感知的
命名空间 nameservice1 CDH
dw
NN节点有两个文件: fsimage editlog(读写请求记录)
SNN 用于checkpoint,合并fsimage+editlog
HA进程: 3 台机器
hadoop001: ZK NN ZJFC JN DN
hadoop002: ZK NN ZKFC JN DN
hadoop003: ZK ZKFC JN DN
JounalNode(实时日志记录): HDFS数据量及请求量
HDFS请求比较频繁,就要记录数据, 几十T,就搞多一点
HDFS很悠闲,搞个 7台即可. 如果机器20台,和ZK保持一致
ZKFC 手动切换
ZK集群: 做选举 (leader(active), follower(standby))
生产上节点部署:
20台节点: 5台ZK (2n+1) 奇数
20~~100台节点: 7/9/11台ZK
>100台节点: 11台ZK
但是:
1.不是说ZK节点越多越好
2.zk越多,当我们选举的时候,性能很慢
几百台节点,ZK部署的机器就它一个进程,任务很重,还有其他进程,会消耗资源,会影响ZK选举的性能.
32G / 256G
ZK是最底层的,如果ZK进程繁忙,导致不能进行选举,就不能对外提供服务
standby 如果 不能切换到 active 状态,就是ZK的问题
进程: ps -ef
线程: 存在于进程中
ZKFC: Zookeeper Failover Control (Zookeeper故障转移控制)
当我们通过Cliecnt提交我们的请求的时候,读写,通过ruozeg6 命名空间进行找去找active,找到后,在那个机器上面进行真正的请求. 读写, 此时就是HDFS的读写流程. editlog自己写一份,同时写一份都JounalNode,同时standby的NN节点,会进行重演, 此时DN会向相隔NN发送心跳和快报告.
参数和时间是多少 可以去官网找配置文件 (这两个参数去找,进行整理)
ZKFC,当一台机器挂了,通过zk进行选举,zk会通知ZKFC,切换成active状态.
ZKFC会定期向zk发送心跳.
-------------------------------------
HA是为了解决单点问题
通过JN集群共享状态
通过ZKFC选举active
监控状态,自动备援
DN: 同时向NN1 NN2发送心跳和快报告
ACTIVE NN: 操作记录写到自己的editlog,
同时写到JN集群
接收DN的心跳和快报告
STANDBY NN: 同时接受JN集群的日志,显式读取执行log操作(重演)
使得自己的元数据和ACTIVE NN节点保持一致 (备份元数据)
同时接收心跳和快报告
JounalNode: 用于ACTIVE NN 与STANDBY NN节点的 数据同步
一般部署2n+1
ZKFC: 单独的进程
监控NN健康状态
向zk集群定期发送心跳,使得自己可以被选举;随时准备着
当自己被zk选举为active的时候,zkfc进程通过RPC协议调用,使NN节点的状态变为active. 只有active状态,才能对外提供实时服务. 它是无感知的 standby状态是不行的.

Hadoop HA 架构的更多相关文章
- hadoop HA架构安装部署(QJM HA)
###################HDFS High Availability Using the Quorum Journal Manager########################## ...
- hadoop HA架构
什么是Hadoop? http://hadoop.apache.org/ 解决问题:·海量数据的存储 (HDFS)·海量数据的分析 (MapReduce)·资源管理调度 (YARN) 集群规划:(这里 ...
- Hadoop技术之Hadoop HA 机制学习
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:温球良 导语 最近分享过一次关于Hadoop技术主题的演讲,由于接触时间不长,很多技术细节认识不够,也没讲清楚,作为一个技术人员,本 ...
- hadoop HA 详解
NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode ...
- hadoop HA学习
一 HDFS HA架构图 二 HDFS HA组件 Active NameNode和Standby NameNode 在NameNode的HA方案中有两个不同状态的NameNode,分别为活跃态(Act ...
- hadoop HA分布式集群搭建
概述 hadoop2中NameNode可以有多个(目前只支持2个).每一个都有相同的职能.一个是active状态的,一个是standby状态的.当集群运行时,只有active状态的NameNode是正 ...
- Hadoop(HA)分布式集群部署
Hadoop(HA)分布式集群部署和单节点namenode部署其实一样,只是配置文件的不同罢了. 这篇就讲解hadoop双namenode的部署,实现高可用. 系统环境: OS: CentOS 6.8 ...
- Hadoop HA 深度解析
社区hadoop2.2.0 release版本开始支持NameNode的HA,本文将详细描述NameNode HA内部的设计与实现. 为什么要Namenode HA? 1. NameNode High ...
- 1、hadoop HA分布式集群搭建
概述 hadoop2中NameNode可以有多个(目前只支持2个).每一个都有相同的职能.一个是active状态的,一个是standby状态的.当集群运行时,只有active状态的NameNode是正 ...
随机推荐
- 63-容器在 Weave 中如何通信和隔离?
上一节我们分析了 Weave 的网络结构,今天讨论 Weave 的连通和隔离特性. 首先在host2 执行如下命令: weave launch 192.168.0.44 这里必须指定 host1 的 ...
- linux bash变量作用域
linux bash变量作用域 一,思考一个问题,当在shell里执行某个程序时,shell是怎么找到这个程序的? shell会去$PATH环境变量定义的目录里去找这个命令.环境变量里一般包括/usr ...
- leetcode菜鸡斗智斗勇系列(4)--- 单一数字的乘积和总合的减法
1.原题: https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/ Given an i ...
- Sublime Merge真正的Git客户端
Sublime Merge好用吗?借助功能强大的跨平台UI工具包,无与伦比的语法高亮引擎和自定义高性能Git读取库,Sublime Merge为性能设定了标准.所有内容都是可扩展的.键绑定,菜单,主题 ...
- EtreCheck是否修复恶意软件和广告软件?为什么EtreCheck无法制作截图?
EtreCheck for Mac是一款Mac上的软件,有很对人对这款软件并不熟系,今天小编就来给大家介绍一下这款软件最常出现的问题—EtreCheck是否修复恶意软件和广告软件?为什么EtreChe ...
- openwrt_在PPPOE上网的同时_访问光猫
openwrt_在PPPOE上网的同时_访问光猫 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-11-14. 参考文章: 光猫桥接模式下,通过路由器访问光猫.简单设置 设置Open ...
- OWASP ModSecurity Core Rule Set (CRS)的基本使用
Preface 前述文章开源WAF工具ModSecurity,介绍了ModSecurity作为Nginx的动态加载模块的基本安装和使用. 本篇简单介绍ModSecurity CRS规则集的使用. # ...
- Java读取本地json文件
背景 之前一直在弄一个Java爬虫,将爬取的信息保存到了数据库中.但这毕竟是一个课程设计,在设计前端GUI,展示数据的时候最开始是直接通过select语句从数据库中查找的,但我担心交给老师后,老师还要 ...
- mysql字符集与比较规则
MySQL有4个级别的字符集和比较规则,分别是: 服务器级别 数据库级别 表级别 列级别 查看服务器级别命令: mysql> SHOW VARIABLES LIKE 'character_set ...
- 解决bcp导出CSV文件没有表头
思路: 1.输出表头文件到指定目录 2.bcp导出csv文件到temp目录 3.将以上导出文件与表头文件合并 4.删除temp目录下的文件 实现: create proc exportCSV ( @i ...