00:00
本节课我们来讨论一下大数据计算引擎Spark生态圈的组件。首先了解一下什么是Spark Spark官网的解释是Apache Spark是一个multi language engine及多语言引擎,这里的多语言是指在Spark中支持使用多种编程语言,例如scla Java SQL Python和R语言。Spark可以执行data engineering的数据工程、data science的数据科学和machine learning的机器学习。这里需要重点讨论一下机器学习。机器学习本质上研究的是算法,它是人工智能的基础,与大数据体系没有本质上的关系,因为大数据体系研究的是数据的存储和数据的计算,只是在大数据体系中支持机器学习的算法。那你知道Spark中支持哪些机器学习的算法吗?欢迎评论区留言讨论single node machines or clusters表示,可以把Spark部署到单节点环境上或者集群环境上。了解到了Spark的基本知。
01:00
这时候下面介绍一下Spark生态圈中的组件平台层,讨论的是式可以把Spark部署成哪些模式,一共有三种不同的模式。第一种是local模式,它是指可以在IDE的开发环境中直接运行Spark应用程序,因此这种模式多用于开发和测试环境中。第二种是cluster的集群模式,它又具体分为两种不同的集群,Stand alone独立运行集群和ern集群。在Stand alone集群下,Spark不需要依赖其他组件独立运行任务和管理集群资源,在yarn集群下,Spark依赖yarn来管理资源和调度任务。Yan是hi duop2.0版本后提供的一个资源和任务调度的平台。那你知道在实际的生产中哪种集群使用的更多吗?欢迎评论区留言讨论。第三种是云原生模式,在该模式下,可以把Spark部署运行在docker和K8S的容器中,但是这种模式不是主流的方式,那你知道具体的原因吗?有了平台的支持。
02:00
时就可以部署Spark了。在Spark生态圈中,最核心的是底层的执行引擎Spark core. 注意,Spark core是一个离线计算执行引擎,因此在Spark中的所有计算都是Spark code的离线计算。有了底层执行引擎的支持,Spark提供了数据分析引擎Spark SQL, 用于支持使用SQL语句处理数据,同时还提供流处理引擎Spark streaming, 用于处理流失数据。注意,Spark streaming不能用于实时性很高的场景中。Spark core Spark SQL Spark streaming都属于大数据的计算引擎。下面讨论每一部分的访问接口,Spark core的访问接口是Spark context Spark SQL的访问接口是SQL context Spark streaming的访问接口是streaming context. 为了统一各个模块的访问接口,从Spark2.0开始,提供了统一的访问接口Spark session. 了解到了各自的访问接口,再讨论一下他们。
03:00
的数据模型Spark code的数据模型式RDD,它叫弹性分布式数据集,由分区组成,每个分区被不同的Spark从节点处理,从而支持分布式计算。RDD是Spark的核心。Spark SQL的数据模型是data frame, 可以把它理解成是一张表。Spark streaming的数据模型是d stream, 它表示的是离散流。注意,Data frame和d streamam最终的表现形式都是一个r DD Spark生态圈除了提供各种计算引擎,还支持机器学习和图计算,但这两个拈本质上不属于大数据体系。现在你已经知道Spark生态圈中的组件,那你知道haddoop生态圈和flink生态圈都有哪些组件吗?欢迎评论区留言讨论好了,记得点加号关注赵宇强老师。
我来说两句