开发者学堂课程【大数据 Spark2020最新课程(知识精讲与实战演练)第一阶段:Spark 概述_Spark 的特点】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/688/detail/11935
Spark 概述_Spark 的特点
Spark 就是一个计算框架,一个多用途的,可以运行在集群里的一个分布式的计算框架。
Spark 的这个特点,可以从四个角度去说:
首先第一个角度是速度,第二个角度是易用,第三个角度是通用,第四个角度是兼容。
Spark 的速度:
非常快,这也是使用 Spark 一个最重要的原因,Spar 在内存里面来进行计算的速度,大概是 Hadoop Mapreduce 的100倍,如果的数据无法存储在内存当中,是必须要落盘的话,在磁盘里面的运行速度, Spark 大概是 Hadoop Mapreduce 的十倍,并且在 Spark2.0以后,有一个叫做乌斯计划,为Spark注入了一些新的一些这个性能的优化点,比如乌斯计划里面允许使用对外内存等等的一些技术点。
Spark 的易用:
如果有一个算法,希望使用 HadoopMapReduce 来去实现,必须要把这个算法违 Map端和 Reduce 端两个端,但是如果使用了 Spark ,也就意味着可以使用一些诸如 where , SelecShow 这样的一些算子来去实现这个算法,这个算子 Spark 当中大概提供了几十种,可以想象一下,几十种算子配合来去完成一个算法,这是第一种方式。
第二种方式是使用Map和Reduce来完成一种算法,显然是第一种方式更好,Spark提供了更加灵活的这个API,并且支持多种语言,例如说的这个大数据领域里面的王者 Java那在比如说大数据里面也也一个非常常见的一个语言 Scala ,这些 Spark 都是支持的,那并且 Spark 也是使用函数式语言 Scala 来进行编写的, Spark 同时还支持在这个这个数据科学,然后在这个机器学习当中非常常见的Python ,Spark 还支持这个数据分析领域常见的这个R语言,并且这个Spark也是支持的好。
Spark 的通用:
可以有两点来去说,首先第一点因为 Spark 提供了很多的数据计算相相关的一些支持,Spark 可以为绝大多数的这个数据计算领域提供相应的支持, Spark 也是一个称之叫做负 stake ,也就是一个全站的一个工具啊,那包括这个 SQL 的执行,包括这个结构化数据的处理,非结构化数据的处理,图计算,机器学习这样的一些东西, Spark 都是支持的,包括流计算,Spark 也是支持的,这是第一点。
第二点说Spark是通用的,也可以从另外一个侧面去说就:Spark 不仅支持这样的一些完整的全站的一些工具,并且 Spark 可以在一份代码里面,一个工具里面去同时使用这么多工具,也就是说在这个一份代码里面,一个类当中一个函数当中,可以同时又写这个 SparkSQL ,又写这个结构化数据的处理,又写这个图计算的这个代码等等。
所以,Spark 不仅支持全站的数据处理,并且它还可以在同一个程序里使用好,那这一点,也是 Spark 非常划时代的一个体验上的进步,在 Spark 之前,应该是没有任何工具能提供出类似的体验。
Spark 是兼容性的:
兼容性,也可以从两点出发来去说,首先,Hadoop ,它是由三个组项来去组成,第一个,Yarn 是做集群调度的,也就是说一个分布式计算的程序,如何跑到集群当中,是由 Yarn 负责的。
在 Hadoop 当中还有第二个组件,叫做 HDFS,它是一个分布式的一个文件存储系统,这个第三个组成部分,就是所说的 Map Reduce ,是一个计算框架,Spark 其实和 MapReduce 的应用非常接近,它跟 Map Reduce是很像的。
但是 Spark 当中并没有提供集群的管理工具,或者没有提供一些这个分布式的文件存储系统,但是 Spark 可以和绝大多数的集群管理工具来进行整合,也可以和绝大多数的存储系统,包括数据库来进行整合。
Spark 可以运行在这个 Yarn 当中,也可以运行在它自己的集群的 Spark Standalo
ne 当中,也可以运行在 Mesos 和 Kubernets 当中,这是截止 Spark2.3 为止 Spark 可以运行的工具当中。
包括一些这个这个这个消息队列,那比如说 RabbitMQ 和 kafka 都可以与之进行整合,所以说 Spark也是兼容的。
总结:
首先 Spark 速度非常快的,对比这个 Hdoop MapReduce 快100倍快十倍。
第二点,Spark它是易用的,它提供了超过80种高级预算服务,让在进行算法的编写的时候更加的轻易
第三点,Spark 是通用的, Spark 是支持全站的数据处理,包括这个图计算,机器学习的 Spark都是支持的,并且 Spark 能够在同一个程序里面使用所有的这些工具。
第四部分主要讲述 Spark 是兼容的,即可以兼容现有的绝大多数的提取工具,也可以兼容现有的绝大多数的存储系统。