Facebook的Hadoop应用与故障转移方案
大数据技术与实战 发表于:12年07月04日 14:23 [转载] IT168
我们曾提到过在短短的60秒内,Facebook的用户会分享684478条信息,Like按钮被点击34772次。庞大的业务量时刻考验着 Facebook的数据处理能力。我们知道,Facebook使用Hadoop来进行大数据的处理,但Facebook又是如何保障频繁、庞大的数据请求等高压环境下不发生故障的呢?我们一起来了解一下Facebook内部的Hadoop使用情况以及其NameNode故障转移技术。
Facebook Hadoop集群内目前的HDFS物理磁盘空间承载超过100PB的数据(分布在不同数据中心的100多个集群)。由于HDFS存储着Hadoop应用需要处理的数据,因此优化HDFS成为Facebook为用户提供高效、可靠服务至关重要的因素。
HDFS Namenode是如何工作的?
HDFS客户端通过被称之为Namenode单服务器节点执行文件系统原数据操作,同时DataNode会与其他DataNode进行通信并复制数据块以实现冗余,这样单一的DataNode损坏不会导致集群的数据丢失。
但NameNode出现故障的损失确是无法容忍的。NameNode主要职责是跟踪文件如何被分割成文件块、文件块又被哪些节点存储,以及分布式文件系统的整体运行状态是否正常等。但如果NameNode节点停止运行的话将会导致数据节点无法通信,客户端无法读取和写入数据到HDFS,实际上这也将导致整个系统停止工作。
▲The HDFS Namenode is a single point of failure (SPOF)
Facebook也深知“Namenode-as-SPOF”所带来问题的严重性,所以Facebook希望建立一套系统已破除“Namenode- as-SPOF”带来的隐患。但在了解这套系统之前,首先来看一下Facebook在使用和部署HDFS都遇到了哪些问题。