开发者学堂课程【大数据 Spark2020最新课程(知识精讲与实战演练)第一阶段:Spark 概述_Spark 是什么】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/688/detail/11934
Spark 概述_Spark 是什么
Spark 的概述:
一、Spark 是什么
二、Spark 特点
三、Spark 的组成
四、Spark 和它的前身 Hadoop 之间的关系
Spark 的定义:
是一个快速的多用途的集群计算系统,那么大家第一步可能会想到 Hadoop ,但是 Hadoop 不能确定它就是一个计算系统,因为 Hadoop 是由 YarnMapreduce 和 HDFS 来构成的,这三个组件中只有 Mapreduce 是和计算有关的, Yarn 做集群调度, HDFS 做集群存储,Map Reduce 做集群计算,在 Spark 之前,有一个计算框架的,叫做Map Reduce,已经有了 MapReduce ,还要去产生一个新的框架,叫做 Spark。
下面通过一个小小的一个案例来去说明,假如现在有一个特定的一个计算任务,特定的计算任务如下图所示,首先整个计算,大致分为四个计算节点,第一个计算节点呢就是计算节点一,第二个计算节点是计算节点二,计算节点三和计算节点四,整个计算的过程就是计算一,经过一顿计算,把结果输出给计算二,计算二又经过一顿计算,把结果输出给计算三,计算结果三再一顿计算,把结果输出给计算四,那计算四回过来,又把结果给计算一,如果要画一张图,这就是一个环,这个东西称作迭代计算。
如果要使用 Mapreduce 来做一个迭代计算的话,首先一个非常好理解的问题,就是每一个计算节点,可能都要使用一个 Map和一个Reduce 来表示,也就是一个 MR, MR1 和 MR2 它们之间的结果。
该怎么进行传递呢,MR1和 MR2 之间的这个结果,要给它放在一个集群存储系统,一个安全的一个分布式存储系统当中,这个存储系统一般情况下称作 HDFS ,如果是这样的话会带来一些问题:
HDFS 是一个分布式的集集群计算啊存储工具,要把这个数据存到HDFS当中,是不是相对会比较的耗时,也就是说你在MR在迭代计算的时候,那么有一个很严峻的问题,就是说的这个效率实在是太低了,开销稍微有一点点高,每一步都要把中间结果保存在 HDFS 里面。这是 Map Reduce 的第一个问题, MR的问题好一就是计算,过程比较缓慢,不适应交互式计算好不适应,不适应迭代计算,这是第一个问题。
第二个问题
MR 整个框架比较紧,意思就是假如说要把一个计算的算法用 M2 表示的话,势必要有一个 Map ,要有一个 Reduce ,就是它是一个常见的一个计算过程,但是并不能说所有的计算都能以M2的形式来表示来表达,不是所有的计算都由 Map 和 Reduce 2个阶段来构成的好,所以 Spark 是不是要解决这个问题。
首先,Spark 解决问题的思路,解决第一个问题的时候,它的思路是什么,主要是因为你的中间结果必须要存在一个这个这个文件系统当中,系统当中,所以改成内存存储,中间结果,对于第二个问题,Spark 来怎么去解决呢?
第二个问题,简单来说就是这个 Mapreduce 给出的 API 不是很好,只能表示成 Map 和 Reduce 来去表达一个计算,那么Spark只有提供更好的这个 API 才能去解决,那这个 API 的风格叫叫函数式,所以 Spark 它是一个计算框架。
它主要是为了解决 Mapreduce 当中问题的,那在每一个计算节点当中, Spark 是可以使用内存来传递中间结果的,并且 Spark 提供了更好的上层 API 供你去使用,这就是Spark。
Spark 的发展:
Spark 的历史,大概是从零九年开始的,有一点要注意,它是要加州大学伯克利分校 AMPLab 去开创的。
比较简单在这一步里面,主要想表达的就是 Spark 来自学术界,一般情况下,在整个的这个技术领域里面大致有两个界,第一个叫做工业界,第二个叫做学术界,工业界,很简单来说,就是各大公司,比如说小米,Google,Microsoft ,包括 Amazon 这样的一些大企业,这个工业界的一些公司。
学术界一般是指所说的一些学校,比如说加州大学伯克利分校,一般情况下,就是工业界产生需求,学术界去解决需求,然后再由工业界完善工具,这是我们的这个这个一个大致的过程。
可以注意到在零九年,其实工业界已经有这个大数据的解决方案了,这个解决方案,就是 Hadoop, Hadoop 在零九年之前就已经发布了版本,并且被各个公司去使用,在工业界里面一度是非常的流行的,因为的 Hadoop 当中难免会有一些问题所以要去解决所以 MIT 要再去创建一个 Spark 这样的工具。
通过历史第二点,想表达的意思就是在14年2月的时候, Spark 已经成为了 Apache 的顶级项目,在一四年的时候呢,这个已经有非常多的开发者投身于 Spark 当中了 Spark 在一四年的时候也已经成为 Apache 事实上最火,最热,参与人数最多的项目。
那么在14年11月的时候,他的这个Spark的母公司叫做 Databricks ,这个团队,使用 Spark 刷新了这个数据排序的世界记录,之前保持者一直是 Hadoop ,现在已经是 Spark,所以 Spark 在事实上已经超越了 Hadoop。
综上是整个的这个视频里面的一个大致的知识点,大致有两个部分组成 。