关于Hadoop生态中的HA方案的一点思考

在给学生授课和搭建Hadoop生态实验环境的过程中,我发现无论是网络上的参考资料、还是来自大数据服务功供应商的运维文档,给出Hadoop的HA解决方案都如出一辙——使用 ZooKeeper 加 Quorum Journal Manager 方案。
诚然,这一方案久经考验,是十分成熟的可靠方案。与NFS方案相比较,它解除了大量写场景下NFS仅支持单个共享编辑目录的系统可用性限制;与Federation方案相比较,则较好地解决了单个joint-namespace中的单点故障问题,因为篱笆内的各namespace是联合作业的,无需协调,各自为政地管理着自己的区域,如果某个 namenode 挂掉了,其管理的相应的文件便不可以访问。
通过分析ZKFC和JournalNode工作原理及相关配置文件,发现ZooKeeper 和 Quorum Journal Manager的组合就干了6件事:HealthMonitor、ZKFailoverController、ActiveStandbyElector、share&Sync? EditLog、加锁EpochNumber以防止脑裂、合并成新的FSImage。
干这6件事是否只能依赖ZooKeeper 和 Quorum Journal Manager的组合呢?
在部署小规模的Web高可用集群时,我曾用keepalived来解决过failover问题,经过适当的修改和定制化后它似乎可以取代ZooKeeper的功用,这样就可以解决HealthMonitor、ZKFailoverController、ActiveStandbyElector问题了。剩下的问题归结起来就是存储和共享元数据的额问题了,这个可以借助于HDFS存储系统实现,利用HDFS的多副本冗余来确保元数据不丢失。当然,依照这个思路解决Hadoop的HA问题,要达到与ZooKeeper 加 Quorum Journal Manager 方案相当的而效果,还需要额外的脚本工具帮助实现,比如用脚本解决Keepalived极易产生的脑裂问题。
从安全运维的角度讲,掌握一种解决方案并不在于使用了多少花哨和前卫的技术,而在于是否能通过分析某一个示例性的解决方案、依据自己的学习和工作经验、根据项目约束条件提出备用解决方案,能否减少平台组件的安装数量、能否在公开采用的解决方案被破解后迅速组织起替代性的解决方案来把可见于潜在的损失降到最低。

孟伯,20200229.
交流联系:微信 1807479153 ,QQ 1807479153

原文地址:https://blog.51cto.com/6286393/2474399

时间: 2024-08-27 09:46:44

关于Hadoop生态中的HA方案的一点思考的相关文章

Hadoop组件之-HDFS(HA实现细节)

Hadoop NameNode 高可用 (High Availability) 实现解析 在 Hadoop 的整个生态系统中,HDFS NameNode 处于核心地位,NameNode 的可用性直接决定了 Hadoop 整个软件体系的可用性.本文尝试从内部实现的角度对 NameNode 的高可用机制进行详细的分析,主要包括 NameNode 的主备切换实现分析和 NameNode 的共享存储实现分析.文章的最后在结合作者自身实践的基础上,列举了一些在高可用运维过程中需要注意的事项. 0 评论 程

Hadoop 2.6.0 HA高可用集群配置详解

1 Hadoop HA架构详解 1.1 HDFS HA背景 HDFS集群中NameNode 存在单点故障(SPOF).对于只有一个NameNode的集群,如果NameNode机器出现意外情况,将导致整个集群无法使用,直到NameNode 重新启动. 影响HDFS集群不可用主要包括以下两种情况:一是NameNode机器宕机,将导致集群不可用,重启NameNode之后才可使用:二是计划内的NameNode节点软件或硬件升级,导致集群在短时间内不可用. 为了解决上述问题,Hadoop给出了HDFS的高

安装高可用Hadoop生态 (一 ) 准备环境

为了学习Hadoop生态的部署和调优技术,在笔记本上的3台虚拟机部署Hadoop集群环境,要求保证HA,即主要服务没有单点故障,能够执行最基本功能,完成小内存模式的参数调整. 1.    准备环境 1.1. 规划 克隆3台服务器,主机名和IP如下 主机名 IP 软件 hadoop 192.168.154.128 原始虚拟机用于克隆 hadoop1 192.168.154.3 Zookeeper,journalnode Namenode, zkfc, Resourcemanager hadoop2

Hadoop 2.0 NameNode HA和Federation实践

参考链接:Hadoop 2.0 NameNode HA和Federation实践 Posted on 2012/12/10 一.背景 天云趋势在2012年下半年开始为某大型国有银行的历史交易数据备份及查询提供基于Hadoop的技术解决方案,由于行业的特殊性,客户对服务的可用性有着非常高的要求,而HDFS长久以来都被单点故障的问题所困扰,直到Apache Hadoop在2012年5月发布了2.0的alpha版本,其中MRv2还很不成熟,可HDFS的新功能已经基本可用,尤其是其中的的High Ava

hadoop2.x通过Zookeeper来实现namenode的HA方案以及ResourceManager单点故障的解决方案

我们知道hadoop1.x之前的namenode存在两个主要的问题:1.namenode内存瓶颈的问题,2.namenode的单点故障的问题.针对这两个问题,hadoop2.x都对它进行改进和解决.其中,问题1中对namenode内存瓶颈的问题采用扩展namenode的方式来解决.对于问题2中的namenode的单点故障问题hadoop2.x采用的是HA的解决方案.apache hadoop 官方网站上提供了两种解决HDFS High Availability Using the Quorum

菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章

菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章 cheungmine, 2014-10-25 0 引言 在生产环境上安装Hadoop高可用集群一直是一个须要极度耐心和体力的仔细工作. 虽然有非常多文档教会大家怎么一步一步去完毕这样的工作,可是百密也有一疏. 现成的工具不是没有,可是对于我这个喜欢了解细节的人来说,用别人的东西,写的好还能够,写的不好,出了问题,查找错误难之又难.手工安装Hadoop集群须要对Linux有一定的使用经验.对于全然没有接触Linux的人来说.肯定是

hadoop 2.2 第二步 HA zookeeper 配置

第一篇文章还有要修改的地方,现在我的集群已经扩展到5台(虚拟机)有些配置还要改,这一篇记录一下Hadoop HA 和zookeeper的配置,方便自己以后看. 新的HDFS中的NameNode不再是只有一个了,可以有多个(目前只支持2个).每一个都有相同的职能. 在HDFS(HA) 集群中,Standby 节点还执行着对namespace 状态的checkpoint 功能,因此没有必要再运行SecondaryNameNode. 这两个NameNode的地位如何:一个是active状态的,一个是s

【源】从零自学Hadoop(12):Hadoop命令中

阅读目录 序 HDFS Commands User Commands Administration Commands Debug Commands 引用 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇,我们对Hadoop命令进行了简略的列举,但是Hadoop命令特多,还有一部分没有列举完,官网基本都是英文的,所以只能拙略的翻译下,妄大家见谅. 下面,我们就开始对Hadoo

从Hadoop URL中读取数据

要从Hadoop文件系统中读取文件,一个最简单的方法是使用java.net.URL对象来打开一个数据流,从而从中读取数据.一般的格式如下: 1.      InputStream in = null; 2.  try { 3.       in = new URL("hdfs://host/path").openStream(); 4.       // process in 5.  } finally { 6.       IOUtils.closeStream(in); 7.  }