spark_2:spark的基础

来源:互联网 发布:网络时间参数计算例题 编辑:程序博客网 时间:2024/06/05 05:53

基础

  • Application
spark的应用程序,包括一个Driver programe和若干个Executor
  • sprakcontext
sprak的应用程序入口,负责调度各个运算资源,协调各个worker node上的Executor
  • Driver Program
运行appilcation的main()函数并创建SparkContext
  • Executor
Apllication运行在work node 上的一个进程进程负责将数据存在内存或者磁盘每个Application都会申请各自的Executors来处理任务
  • Cluster Manger
在集群上获得外部服务yarn,standalone
  • work node
集群中任何可以运行Application代码的节点,运行一个或者多个Executor进程
  • Task
运行在executor的工作单元
  • Job
SparkContext提交的具体的Action操作
  • stage
每个job被拆分为很多组任务(task), 每组任务被称为stage,为称为TaskSet
  • RDD
弹性分布式数据集,核心模块和类
  • DAFScheduler
根据Job,构建基于stage的DAG,并提交Stage给TaskScheduler
  • TaskScheduler
将Taskset提交给Worker node的集群运行并返回结果
  • Transformations/Action
Spark API的两种1. Transformation返回RDD2. Action返回不是一个RDD,而是一个Scala集合3. Transformation提交后不执行计算,计算只有在Acion提交后才触发

spark core

RDD

  • 弹性:数据集丢失一部分,可以重建
  • 容错: Lineage,记录如何从其他RDD转换而来

RDD编程接口

  • Transformations:转换操作,返回一个RDD
map/filter/flatmap/sample/groupbykey/reducebykey/union/join/cogroupcrossProduct/mapValues/sort/partitionBy
  • Action: 行动操作
count/collect/reduce/save
  • 窄依赖和宽依赖
* 窄依赖: 一个父RDD最多被一个子RDD引用,map/filter/union* 宽依赖: 一个父RDD被多个字RDD引用,groupByKey等操作
  • Stage DAG
* stage之间的依赖形成DAG(有向无环图)* 窄依赖:RDD尽量在一个stage中* 宽依赖:shuffer操作,shuffle定义为stage的边界

streaming

Spark Graphx

  • 图计算
  • svd++

Spark Shark

  • shark = Hive on Spark

Spark SQL

MLBASE

Tachyon


SPARK计算模型

基于内存的迭代计算

  • mapreduce每次执行中需要从磁盘读取数据,计算完毕后把数据存入磁盘
  • spark基于内存

DAG

  • DAG也是快速的原因
  • stage之间的依赖形成DAG
  • DAG:宽依赖,窄依赖

基于DAG具有精致的作业调度系统

基于DAG具有容错机制


RDD基本概念

创建RDD

  • 加载外部数据
  • 驱动中平行化集合:spark.parallelize

RDD 操作

  • 转换:生成RDD
  • 动作

惰性

  • spark不会执行,知道有一个动作
0 0
原创粉丝点击