《企业级大数据平台构建:架构与实现》——2企业级大数据平台技术栈介绍
第2章企业级大数据平台技术栈介绍
让我们将时间的指针拨回到2002年,那时候还没有“大数据”一词,处理海量数据的技术还不为众人所知。Doug Cutting在创建了开源的全文搜索函数库Lucene之后想进一步提升,在Lucene上加入网络爬虫和一些Web服务。于是在2002年10月,Doug Cutting和Mike Cafarella一起创建了开源的网络搜索引擎Nutch。实现一个分布式的搜索引擎并不容易,在分布式环境中如何实现一个可靠的高可用系统一直都是个难题。2003年10月,Google发表了著名的《Google File System》论文,描述了Google内部使用的高可用的分布式文件系统GFS。这篇论文给了Doug Cutting和Mike Cafarella很大的灵感,于是在2004年7月,他们在Nutch中实现了类似GFS的功能NDFS(Nutch Distributed File System)。Nutch面对的另一个问题是如何将海量的数据转化成索文件。2004年10月,Google发表了著名的论文《MapReduce》,描述了Google内部使用的一种基于MapReduce模型的分布式计算框架。2005年12月,Mike Cafarella在Nutch中实现了MapReduce的首个开源版本。2006年1月Doug Cutting加入Yahoo,创建了Hadoop项目,试图将开源的MapReduce和DFS发展成一个真实可用的系统。
2006年2月,Apache Hadoop项目正式启动以支持MapReduce和HDFS的独立发展。开源的大数据技术逐步进入了人们的视野。
如果在十年前,我们能够使用的开源技术可能仅仅只有Hadoop的HDFS和Map-
Reduce。经过这么多年的发展,现如今当我们提到Hadoop的时候早已不再单单指Hadoop这个开源项目本身了。Hadoop一词已经成为大数据开源技术生态的代名词。Hadoop的生态体系已经发展得非常丰富了,基于Hadoop生态催生出了各式各样的技术框架。我想其根本原因是因为人们对大数据的诉求已经从当年的“吃得饱”转变为现在的“吃得好”了。人们不单要求能够存储和计算海量数据,还想越来越廉价地存储海量数据,越来越快地计算数据。不仅如此,大数据涉足的领域也越来越广泛,像批处理、流计算、机器学习、人工智能和物联网等领域都能看到一些技术框架的身影。与此同时Hadoop生态体系也变得更为多元化了,出现了像基础设施、管理和服务等多种细分领域。
接下来会开始介绍基于Hadoop开源技术路线去实现一个企业级大数据平台会使用到的一些重要技术栈(更多的技术栈介绍请参见附录B)。因为本书的定位不是对某个专项技术进行深入介绍的书籍,所以只会挑选一些我认为比较重要的组件进行介绍,目的是完善本书的上下文。如果读者想更加深入地了解每项技术,可以阅读相应组件的专项介绍书籍。
2.1 HDFS
2.1.1 概述
HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的简称,它是一个被设计成适合运行在廉价机器上的分布式文件系统,是Google分布式文件系统(GFS)的开源实现。HDFS能提供高吞吐量的数据访问,非常适合在大规模数据集上应用。同时也是一个具备高度容错性的系统。
把HDFS放在首位来介绍是因为它是如此的重要,称它为平台的基石也不为过。这是为什么呢?因为文件系统在软件系统架构中永远都是处于最为重要的基础部分。在传统的单机系统架构中,文件系统通常是由操作系统的文件系统直接支撑的,而HDFS在分布式系统架构中扮演着底层文件系统的角色,是其他分布式系统的基石。
如果想要实现一个分布式架构的系统,必然需要面对解决分布式存储的问题。因为作为一个健壮的、可扩展的分布式系统,自然而然地会有一些状态和数据需要进行持久化保存,这就会涉及分布式存储。如果一个分布式系统其底层的文件系统不是分布式的,那么它的存储就会存在单点问题,不能称为一个健壮的系统。
- 点赞
- 收藏
- 关注作者
评论(0)