首页 > 编程知识 正文

Hadoop系统中的单点故障解决方案总结

时间:2023-05-04 07:49:24 阅读:182350 作者:2327

相较与Hadoop1.0,Hadoop2.0提供了比较完整的单点故障解决方案(Hadoop HA)

Hadoop2.0内核由HDFSMapReduceYARN三个分支组成,其他Hadoop生态系统组件为h

因此,Hadoop2.0存在三个子系统的单点故障问题。

在正式介绍解决方案之前,我将简要回顾这三个子系统。

)1)HDFS分布式存储系统。 由NameNode和DataNode构成,保存元数据信息和操作日志。 由于NameNode是独一无二的,因此其可用性直接决定着整个存储系统的可用性。

)2)YARN:Hadoop2.0中新引入的资源管理系统。 通过这个引进,Hadoop不仅可以进行MapReduce那样的计算,还可以支持各种各样的计算框架。 由资源管理器和节点管理器组成,资源管理器是整个系统的唯一组件,存在单点故障问题。

)3)MapReduce)目前存在两种类型的MapReduce实现。 一个是可以独立运行的MapReduce,由JobTracker和TaskTracker两部分组成,其中JobTracker存在单点故障问题。 另一个是MapReduce On YARN,该实现为每个作业独立使用“作业跟踪器”(ApplicationMaster ),彼此之间不再产生影响,并且没有单点故障问题。 因此,本文的单点故障问题是针对第一类MapReduce的实现提出的。

一般来说,Hadoop的HDFS、MapReduce和YARN单点故障解决方案是一致的(使用Hadoop HA )。 分为手动模式和自动模式。

手动模式是指管理员通过命令进行主控切换,该通常在服务升级时有用

自动模式可以降低运输成本,但有潜在的危险。

有以下两种模式体系结构:

【手动模式】

【自动模式】

在Hadoop HA中,主要由以下组件组成:

)1)MasterHADaemon:与主服务器在同一城市运行,可以接收外部RPC (远程过程调用)命令控制主服务器的启动和停止。

)2)Shared Storage:共享存储系统。 active master会将信息写入共享存储系统,而standby master会读取该信息以保持与active master的同步,从而缩短切换时间。 典型的共享存储系统包括bookeeper (用于yarn ha )、NFS ) HDFS HA (用于HDFS )、MapReduce HA (用于HDFS )、bookeeper类系统(用于HDFS HA )

3 )ZKFailoverController)基于Zookeeper的开关控制器主要包括两个核心组件: ActiveStandbyElector和HealthMonitor。 在此,ActiveStandbyElector负责与zookeeper集群进行交互,通过尝试获取全局锁来判断管理的主服务器是否处于active或standby的状态

)4) 3358www.Sina.com/)核心功能通过用Zookeeper集群控制整个集群,使得只能拥有一个活动主节点。

维护一把全局锁,

(1)脑裂) brain-split )是指在主控切换时,由于切换不完全或其他原因,客户端和Slave误认为出现了两个active master,最终导致整个集群陷入混乱状态。 解决脑分裂问题通常采用隔离机制(Fencing ),包括三个方面。

隔离共享存储器:确保只有一个主机向共享存储器写入数据

客户端隔离(确保只有一个主机可以响应客户端请求

Slave隔离:确认只有一个Master可以命令Slave

Hadoop公共库向外部提供了两种类型的fencing实现: sshfence和shellfence。 其中,sshfence意味着通过ssh登录到目标Master节点,并使用命令fuser杀死进程(通过tcp端口号标识进程pid )。 这个方法比jps命令更准确)。

)2)切换的外部透明)为了确保整个切换是外部透明的,Hadoop必须保证所有客户端和从属端都能自动重定向到新的active master。 这通常是通过几次尝试连接旧的master都没有成功后,再尝试链接新的master来进行的,整个过程会有一定的延迟。 新版本的Hadoop RPC允许用户自行设置RPC客户端的尝试机制、尝试次数和尝试超时时间等参数。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。