Spark入门01

1 Spark是什么

Spark是用于大规模数据处理的统一分析引擎。对任意类型的数据进行自定义计算。
可以计算:结构化、非结构化,半结构化的数据结构,支持使用Python,Java,Scala、Sql语言开发应用程序计算数据。
计算框架:
Spark入门01_第1张图片
Spark借鉴了MapReduce思想,保留了其分布式并行计算的有点并改进了其明显的缺陷,让中间数据存储在内存中提高了运行速度、并提供丰富的操作数据的API提高了开发速度。

Hadoop和Spark对比

Spark入门01_第2张图片

  • 在计算层面,Spark相比较MapReduce有巨大的性能优势,但至今仍有很多计算工具基于MR框架
  • Spark仅做计算,而Hadoop生态圈不仅有计算MR,还有存储HDFS,和资源管理调度YARN
2 Spark四大特点
  • 速度快
    • 处理数据时,将中间结果数据存储到内存中
    • 提供非常丰富的算子(API)
  • 易于使用
  • 通用性强
    Spark入门01_第3张图片- 运行方式多
    Spark入门01_第4张图片
3 Spark框架
  • SparkCore:Spark的核心,Spark核心功能均由SparkCore模块提供,是Spark运行的基础。SparkCore以RDD为数据抽象,提供Python、Java、ScalaR语言的API,可以编程进行海量离线数据批处理计算。
  • SparkSQL:基于SparkCore之上,提供结构化数据的处理模块。SparksQL支持以SQL语言对数据进行处理,SparkSQL本身针对离线计算场景。同时基于SparkSQL,Spark提供了Structuredstreaming模块,可以SparkSQL为基础,进行数据的流式计算。
  • SparkStreaming: 以Sparkcore为基础,提供数据的流式计算功能。
  • MLlib: 以Sparkcore为基础,进行机器学习计算,内置了大量的机器学习库和API算法等。方便用户以分布式计算的模式进行机器学习计算。
  • GraphX: 以Sparkcore为基础,进行图计算,提供了大量的图计算API,方便用于以分布式计算模式进行图计算。
    Spark入门01_第5张图片
4 Spark的运行模式
  • 本地模式(单机):独立的进程,通过其内部的多个线程来模拟整个Spark运行时环境,多用于本地测试
  • Standlone模式(集群):各个角色以独立进程的形式存在,并组成Spark集群环境,Standalone是Spark自带的一个资源调度框架,支持完全分布式
  • Hadoop YARN模式(集群):各个角色运行在YARN的容器内部,并组成Spark集群环境
  • Kubernetes模式(容器模式):各个角色运行在Kubernetes的容器内部,并组成Spark集群环境
  • 云服务模式(运行在云平台上)
5 Spark架构角色
5.1.YARN角色回顾

YARN主要有4类角色,从2个层面去看:

  • 资源管理层面
    * 集群资源管理者 (Master):ResourceManager
    * 单机资源管理者 (Worker):NodeManager,所在服务器的资源管理
  • 任务计算层面
    • 单任务管理者(Master):ApplicationMaster(当前计算任务的管家)
    • 单任务执行者(Worker):Task(容器内计算框架的工作角色)
      Spark入门01_第6张图片
5.2.Spark运行角色
  • 资源管理层面
    * 集群资源管理者 :Master
    * 单机资源管理者 :Worker
  • 任务计算层面
    • 单任务管理者:Driver,管理单个Spark任务在运行时工作
    • 单任务执行者:Executor,单个任务运行时的一堆工作者Spark入门01_第7张图片
5.3 YARN和Spark对比

从2个层面划分:

  • 资源管理层面:
    管理者:Spark是Master角色, YARN是ResourceManager
    工作中:Spark是Worker角色,YARN是NodeManager
  • 任务执行层面:
    某任务管理者:Spark是Driver角色,YARN是ApplicationMaster
    某任务执行者:Spark是Executor角色,YARN是容器中运行的具体工作进程

你可能感兴趣的:(spark,大数据,分布式)