(Spark框架模块)
整个模块包括:SparkCore, Spark SQL, Spark Streaming, Spark GraphX, Spark MLlib,而后面四项的能力都是建立在核心引擎之上
1.Spark Core:spark的核心,spark核心功能均有spark Core模块提供,是spark运行的基础。spark Core以RDD为数据抽象,提供python,java,scala,R语言的API,可以变成进行海量离线数据批处理计算。
2.SparkSQL:基于sparkCore之上,提供结构化的处理模块。SparkSQL支持SQL语言对数据进行处理,SparkSQL本身针对离线计算场景。同时基于SparkSQL,Spark提供了StructureStream模块,可以以SparkSQL为基础,进行数据的流式计算。
3.SparkStreaming:以SparkCore为基础,提供数据的流式计算
4.MLlib:以SparkCore为基础,进行机器学习计算,内置了大量的机器学习库和API算法等。方便用户以分布式计算的模式进行机器学习计算。
5.GraphX:以SparkCore为基础,进行图计算,提供了大量的图计算API,方便用于以分布式计算模式进行图计算
(Spark的运行模式)
1.本地模式(单机模式)
本地模式是以一个独立的进程,通过其内部的多个线程来模拟整个Spark运行时环境
2.Standalone模式(集群)
Spark中的各个角色以独立进程的形式存在,并组成Spark集群环境
3.Hadoop YARN模式(集群)
Spark中的各个角色运行在YARN的容器内部,并组成Spark集群环境
4.Kubernetes模式(容器集群)
spark中的各个角色运行在Kubernetes的容期内部,并组成Spark集群环境
5.云服务模式(运行在云平台上)
(Spark的架构角色)
Spark运行角色:
Master角色,管理整个集群的资源 类比与YARN的ResouceManager
Worker角色,管理单个服务器的资源 类比与YARN的NodeManager
Driver角色,管理单个Spark任务在运行时的工作 类比与YARN的ApplicationMaster
Executor角色,单个任务运行时的一堆工作者 类比与YARN的容器内运行的TASK