Spark
Hadoop MRv1: HDFS+MapReduce
运行时环境(JobTracker, TaskTracker)
编程模型(MapReduce)
数据处理引擎(Map任务,Reduce任务)
Hadoop MRv2: HDFS+YARN+MapReduce+Stom
运行时环境被重构了。
JobTracker 被拆成 通用的资源调度平台(ResoureManager, RM)
和负责各个计算框架的任务调度模型(ApplicationManager, AM)
MRv2中 MapReduce 核心不在是 MapReduce,而是 YARN
Spark:
DAG执行引擎支持数据在内存中计算
支持SQL及Hive SQL对数据查询
支持流式计算
丰富的数据源支持
易于使用,支持Java Scala Python R等语言编写应用程序,允许Scala Python R的shell交互式查询。
Spark概念:
RDD: 弹性 分布式 数据集
Task: 具体执行任务。Task分为ShuffleMapTask和ResultTask两种。类似于Map和Reduce。
Job: 用户提交的作业。一个Job可能有一个到多个Task组成。
Stage: Job分成的阶段。
...
DAG: 有向无环图,反映各个RDD之间的依赖关系。
Scala和Java:
Scala: 并发编程模型 使用Actor的消息模型,函数式编程
Java: 使用阻塞 锁 阻塞队列,面向对象编程
Spark模块:
Spark Core:
SparkContext: 内置的DAGScheduler负责创建Job,将