Hadoop架构、部署及编程

引言

互联网的发展、数据自动采集器的大范围应用,使信息采集和规模达到空前的水平。Google在2003年发表了”The Google File System”、”MapReduce: SimpliedData Processing on Large Clusters”论文,分别介绍Google 海量数据处理使用的分布式文件系统和计算框架,使大数据时代数据存储和计算发生了革命性的变化。Doug Cutting等人在Nutch项目上吸收了GFS和MapReduce思想并将其演化为Hadoop 项目。经过多年的发展,最终形成了包含多个相关项目的软件生态系统,开创了海量数据处理的新局面。

 

Hadoop是为了解决大数据时代数据存储和处理而设计的。就算没有并行计算程序开发经验的程序员,也可以基于Hadoop容易地开发处并行处理大规模数据的分布式计算程序。

 

目前,国内百度使用Hadoop进行搜索日志的分析和网页数据挖掘、淘宝采用Hadoop系统存储并处理电子商务交易的相关数据、中国移动研究院基于Hadoop的“大云”(BigCloud)系统用于对数据进行分析和并对外提供服务;国外Yahoo! 通过运行Hadoop集群以支持广告系统和Web搜索的研究、Facebook借助运行Hadoop集群支持其数据分析和机器学习。

 

Google十大核心技术

可以说Hadoop两大核心分布式文件系统及分布计算框架脱胎于Google的GFS、MapReduce核心技术。Google作为一个伟大的互联网公司,必定有其杀手锏:Google十项核心技术。这十项核心技术可分为四大类:分布式基础设施、分布式大规模数据处理、分布式数据库技术和数据中心优化技术。

分布式基础设施

GFSChubby Protocol Buffer

分布式大规模数据处理

 MapReduce Sawzall

分布式数据库技术

BigTable、数据库Sharding

数据中心优化技术

数据中心高温化、12V电池、服务器整合

Chubby主要解决锁控制机制,ProtocolBuffer定义数据交换的格式,而Sawzall是一门类型安全的脚本语言,等等。本文重点关注与Hadoop相关的GFS和MapReduce。

 

GFS

搜索引擎需要处理海量的数据,Google两位创始人Larry Page和Sergey Brin在创业初期设计一套名为"BigFiles"的文件系统,而GFS(全称为"Google File System")这套分布式文件系统则是"BigFiles"的延续。Google内部至少运行着200多个GFS集群,最大的集群有几千台服务器,并且服务于多个 Google服务,比如Google搜索。由于GFS主要为搜索而设计,所以不是很适合新的一些Google产品,比YouTube、Gmail和更强调实时性的Caffeine搜索引擎等。因而Google已经在开发下一代GFS,代号为“Colossus”,在设计方面有许多不同,比如:支持分布式Master节点、Chunk节点能支持1MB大小的chunk以支撑低延迟应用的需要。


GFS的架构图

从上图可以看出Client与Chunk节点和Master节点均有交互;与Chunk间主要是进行数据交换,而与master节点间的交互则是查询元数据。

Chunk节点:用来存储数据块,数据文件分割为默认大小64MB,而且每个Chunk有唯一64位标签,每个Chunk都会在整个分布式系统被复制多次,默认为3次。

Master节点:存储与数据文件相关的元数据。元数据包括将64位标签与数据块的位置及其组成文件的表格、数据块副本位置和哪个进程正在读写某个数据块的映射等。Master节点周期性接收每个Chunk节点来的“Heart- beat”,使元数据保持最新状态。

GFS设计特点主要包括:

大文件和大数据块:数据文件的大小普遍在GB级别,而且其每个数据块默认大小为64MB,这样做的好处是减少了元数据的大小,能使Master节点能够非常方便地将元数据放置在内存中以提升访问效率。

操作以添加为主:因为文件很少被删减或者覆盖,通常只是进行添加或者读取操作,这样能充分考虑到硬盘线性吞吐量大和随机读写慢的特点。

支持容错:首先,虽然当时为了设计方便,采用了单Master的方案,但是整个系统会保证每个Master都会有其相对应的复制品,以便于在Master节点出现问题时进行切换。其次,在Chunk层GFS已经在设计上将节点失败视为常态,能非常好地处理Chunk节点失效的问题。

高吞吐量:虽然其单个节点性能无论是从吞吐量还是延迟都很普通,但因为支持上千的节点,所以总的数据吞吐量非常惊人。

保护数据:首先,文件被分割成固定尺寸的数据块以便于保存,而且每个数据块都会被系统复制三份。

扩展能力强:因为元数据偏小,使得1个Master节点能控制上千个Chunk节点。

支持压缩:对于那些稍旧的文件,可以通过对它进行压缩,来节省硬盘空间,并且压缩率非常惊人,有时甚至接近90%。

 MapReduce

MapR

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值