你也可以这么理解Hadoop的构成,Hadoop=HDFS(文件系统,数据存储技术相关)+HBase(数据库)+MapReduce(数据处理)+……Others
Hadoop用到的一些技术有:
HDFS: Hadoop分布式文件系统(Distributed File System) - HDFS (HadoopDistributed File System)
MapReduce:并行计算框架
HBase: 类似Google BigTable的分布式NoSQL列数据库。
Hive:数据仓库工具,由Facebook贡献。
Zookeeper:分布式锁设施,提供类似Google Chubby的功能,由Facebook贡献。
Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。
Pig:大数据分析平台,为用户提供多种接口。
Ambari:Hadoop管理工具,可以快捷的监控、部署、管理集群。
Sqoop:用于在Hadoop与传统的数据库间进行数据的传递。
说了这么多,举个实际的例子,虽然这个例子有些陈旧,但是淘宝的海量数据技术架构还是有助于我们理解对于大数据的运作处理机制:
淘宝大数据
如上图所示,淘宝的海量数据产品技术架构分为五个层次,从上至下来看它们分别是:数据源,计算层,存储层,查询层和产品层。
数据来源层。存放着淘宝各店的交易数据。在数据源层产生的数据,通过DataX,DbSync和Timetunel准实时的传输到下面第2点所述的“云梯”。
计算层。在这个计算层内,淘宝采用的是Hadoop集群,这个集群,我们暂且称之为云梯,是计算层的主要组成部分。在云梯上,系统每天会对数据产品进行不同的MapReduce计算。
存储层。在这一层,淘宝采用了两个东西,一个使MyFox,一个是Prom。MyFox是基于MySQL的分布式关系型数据库的集群,Prom是基于Hadoop Hbase技术的一个NoSQL的存储集群。
查询层。在这一层中,Glider是以HTTP协议对外提供restful方式的接口。数据产品通过一个唯一的URL来获取到它想要的数据。同时,数据查询即是通过MyFox来查询的。
最后一层是产品层,这个就不用解释了。
存储技术
大数据可以抽象的分为大数据存储和大数据分析,这两者的关系是:大数据存储的目的是支撑大数据分析。到目前为止,还是两种截然不同的计算机技术领域:大数据存储致力于研发可以扩展至PB甚至EB级别的数据存储平台;大数据分析关注在最短时间内处理大量不同类型的数据集。
提到存储,有一个着名的摩尔定律相信大家都听过:18个月集成电路的复杂性就增加一倍。所以,存储器的成本大约每18-24个月就下降一半。成本的不断下降也造就了大数据的可存储性。
比如,Google大约管理着超过50万台服务器和100万块硬盘,而且Google还在不断的扩大计算能力和存储能力,其中很多的扩展都是基于在廉价服务器和普通存储硬盘的基础上进行的,这大大降低了其服务成本,因此可以将更多的资金投入到技术的研发当中。
以Amazon举例,Amazon S3 是一种面向 Internet 的存储服务。该服务旨在让开发人员能更轻松的进行网络规模计算。Amazon S3 提供一个简明的 Web 服务界面,用户可通过它随时在 Web 上的任何位置存储和检索的任意大小的数据。 此服务让所有开发人员都能访问同一个具备高扩展性、可靠性、安全性和快速价廉的基础设施,Amazon 用它来运行其全球的网站网络。再看看S3的设计指标:在特定年度内为数据元提供 99.999999999% 的耐久性和 99.99% 的可用性,并能够承受两个设施中的数据同时丢失。
S3很成功也确实卓有成效,S3云的存储对象已达到万亿级别,而且性能表现相当良好。S3云已经拥万亿跨地域存储对象,同时AWS的对象执行请求也达到百万的峰值数量。目前全球范围内已经有数以十万计的企业在通过AWS运行自己的全部或者部分日常业务。这些企业用户遍布190多个国家,几乎世界上的每个角落都有Amazon用户的身影。