分布式计算原理课程主要内容其实包含两个方面:
(一)、分布式存储;
(二)、分布式计算;
如果分得更细一点的话,还应该包含分布式应用即如何利用分布式计算来分析处理分布式存储的数据;
用图来说明:
这里需要明确几个概念:
(1)、何谓分布式
在百度词条中,你会发现,分布式就是计算机的一种算法。其实可以形象的将其比喻为撒网捕鱼,渔网中的每个节点都负责着各自的自责(不能脱离渔网,要牢不可破)。
(2)、何谓分布式存储
在百度词条中,分布式存储技术是利用网络将数据分散地存储于多台独立的机器设备上。核心点是数据、网络、多台主机。
(3)、何谓分布式计算
在百度词条中,所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
明确了以上几个概念之后,我们需要将抽象的理论转变成一些可以学习的技术。那目前到底有哪一些是这个理论的实现方式呢?其实有很多关于分布式计算和存储的技术,比如Google的GFS和MapReduce,Hadoop中的hdfs和MapReduce,流式计算领域的Storm、Spark Streaming等。面对这些目不暇接的技术时,我们需要做一些权衡,到底需要给学生学习什么技术好一些呢?其实作为教学的话,往往偏向于从基础入手,那分布式最开始的时候是由Google发明的,当时互联网泡沫刚刚结束之后,Google采取了所谓的低成本之路的策略,需要将许许多多廉价的PC机串联起来,形成一个巨大的分布式主机网络。随之发表了GFS(Google File System)的论文,之后又发表了MapReduce分布式计算和BigTable的论文,这三篇论文的出现,奠定了分布式计算和存储技术的基础。至于Hadoop和HBase就是GFS、MapReduce、BigTable的开源实现。我们无法学习Google的分布式计算,但是我们可以学习开源的Hadoop分布式计算框架。这个也就是我们选择Hadoop来教学的原因。
那Hadoop如何体现了分布式存储和分布式计算的原理呢?其实就是Hadoop的内部的两个核心部件:HDFS(Hadoop Distributed File System)和MapReduce。
(1)HDFS(Hadoop Distributed File System)即Hadoop分布式文件系统,它解决了分布式存储的问题;
(2)MapReduce即分布式计算模型,它解决了分布式计算的问题;
因此,针对分布式计算原理的课程,其主要内容就是学习Hadoop,学习Hadoop的HDFS和MapReduce以及Hadoop生态圈外围的一些组件。
我画了一张思维导图,大家可以看看学习大数据需要学习的一些技术,这里只是作为学习大数据的一个基本上路线而已。
