能力,能够可靠地存储和处理海量数据;并可以用于廉价的商用机器上,从而降低开发的成本;可以并行地处理数据,提高系统的效率;其自动地维护数据的多份复制,并且在任务失败后能够自动地重新布置计算任务8。
Hadoop 作为一种支撑大规模互联网服务的软件平台和工具集,可以用来解决分布式计算中的很多问题,跟商业软件相比,有两大主要优势:一是实用,效率较高,能够处理许多商业软件如传统数据库不能做的事情,特别是在海量数据处理和计算 2方面,Hadoop 的优势非常明显;二是开源,成本低,而且容易修改,便于做二次开发,这尤其对于那些新兴互联网业务非常实用。
1.2 Hadoop 的研究现状 自从 Hadoop 项目设置以来,其逐渐地在互联网领域得到了很好的发展,且逐渐地被人们所接受。
如 Yahoo!公司使用 4000 个节点的机群运行 Hadoop,用来支持广告系统和 Web 搜索的研究;Facebook 使用 1000 个结点的机群运行 Hadoop,用来进行日志数据信息的存储,支持其上的数据分析和机器学习;百度用 Hadoop 每天处理 1PB 的数据,进行搜索日志分析和网页数据挖掘工作;中移动研究院基于 Hadoop开发了“大云”Big Cloud系统,不但用于相关数据分析,还对外提供服务;淘宝的Hadoop 系统用于存储并处理电子商务的交易相关数据9。
另外,随着云计算和云存储逐渐地被业界所接受,越来越多的企业和研究机构都开始开发各自的云存储架构体系10。
通用的云存储架构如图 1.2 所示。
访问层 个人空间服 企事业单位或SMB实现数 视频监控、IPTV等系 务、运营商空 据备份、数据归档、集中 统的集中存储,网站 间租凭等…… 存储、远程共享…… 大容量在线存储…… 网络(广域网或互联网)接入、用户认证、权限管理 应用接口层 公用API接口、应用软件、web service等 集群系统 内容分发 数据加密 基础管理层 分布式文件系统 P2P 数据备份 网格计算 重复数据删除 数据容灾 (Hadoop所处的位置) 数据压缩 存储虚拟化、存储集中管理、状态监控、维护升级等 存储层 存储设备(NAS、FC、iSCSI等) 图 1.2 云存储的体系架构 3 和 Hadoop 已经被 Yahoo! IBM 等公司用于各自云存储和云计算的体系架构当中。
IBM 推出的蓝云计划就是使用了 HDFS 的易扩展性和 MapReduce 的并行性,来架构自己的一个分布式的、可全球访问的系统,从而为各个类型的用户使用,特别是那些中小企业,不仅可以为它们节省很大的开支,还可以使用高可靠性和高性能的服务。
Hadoop 技术除已经在互联网领域得到了广泛应用之外,同时也受到了学术界的普遍关注。
国内的高校和研究院基于 Hadoop 在数据存储、资源管理、作业调度、性能优化、系统高可用性和安全性方面进行研究,相关研究成果很多都是以开源的形式献给 Hadoop 社区的。
如同 Hadoop 技术本身,Hadoop 社区还处于发展当中,但是 Hadoop 的生态系统已经过了最初过渡的阶段。
现在 Hadooop 已经有了比较畅通的沟通渠道,比如Hadoop in China 大会就是一个典型平台,而且也有很多企业参与其中,大家在不同的点上做相同的开源式的创新。
不过,国内 Hadoop 生态系统的运作机制还不够完善,与国外相比,国内的机制还不成熟,Hadoop 开源社区运作起来就显得比较松散。
1.3 本文的主要研究工作 由于在 HDFS 中,存在元数据服务器的单点失效的问题,其结构图如 1.3 所示。
虽然,HDFS 对每个数据保存了多份在不同的机器上,可以保证数据的可用性,但是,由于系统中只有一个元数据服务器,这样,当其出现故障的时候,系统将不能继续的工作,用户也就不能访问所保存的数据。
通过在 Paxos 一致性算法11的基础上,并设计与实现了一种选举机制,从而实现多个元数据服务器同时在系统中进行工作,提高元数据服务器的容灾性,使得系统在某个元数据服务器失效的时候,能够继续稳定地继续工作,从而提高系统的可靠性。
4 Metadata Namereplicas…: NameNode /home/foo/data3… Client 数据块操作 读操作 DataNodes DataNodes 写操作 Rack 1 Rack 2 Client 图 1.3 HDFS 的结构图1.4 本文的组织结构 根据所做工作在逻辑上的关系,本文的组织结构如下所示: 第一章主