首页 > 其他 > 详细

Spark计算框架

时间:2019-10-30 10:17:14      阅读:92      评论:0      收藏:0      [点我收藏+]

 

Spark是以MapReduce为基础在其上进行功能扩展的集群计算框架。spark计算面向是RDD(resilient distributed dataset)分区内集合元素可并行操作
RDD是种编程抽象,代表可以跨机器进行分割的只读对象集合,所有对数据操作都需通过RDD处理。

 RDD操作:

  create:通过hfile 或 scala collection作为数据源

  transformation:处理计算转换,map,flatmap,filter

  controler:对中间结果可存储在memory 或file供其它RDD数据复用

  actions:驱动RDD执行计算

技术分享图片

Spark程序是一个惰性计算,通过action调用来驱动代码被分发到集群上,由各个RDD分区上的worker来执行,然后结果会被发送回驱动程序进行聚合处理。
即,驱动程序创建一个或多个RDD,调用transform来转换RDD,然后调用reduce处理被转换后的RDD。在程序处理数据过程中使用的是pipleLine方式。

 

程序执行流程:

技术分享图片

 

 

 

Spark Components:

技术分享图片

 

 

 角色组成:

  Driver program:  由SparkContext创建,运行在main方法
  Cluster manager:  获取集群内资源(模式standalone ,Mesos, YARN)的外部服务
  Worker node:  集群中能够运行代码的节点
  Executor:  work node上启动的process,能够运行tasks,能在memory or disk上存储数据,每个application都有自己的excutors
  Task:  发送给excutor的一个单元
  Job:  spark actions生成的多个任务组成的并行计算
  Statge: 每个job划分为阶段性的小型任务集合

 

架构说明:

1, 每个application都有自己的excutor进程,每个excutor可以多线程执行任务,存在整个application生命周期内,多个application之间互相独立(每个app对应一个jvm实例),
    所以多个spark application之间只能通过将数据写入外存储才能进行数据共享
    
2,spark与集群管理模式无关,只要获取到excutor,excutor之间能够互相通信,它就能在集群中运行

3,driver负责监听接收excutor连接,driver必须确保其它WorkNode能够通过网络地址寻找到,driver规划集群上的任务,把任务运行在较近的worker nodes上,
  如果执行task在远端的集群上,他会通过RPC提交operations到较近的节点运行task

 

Spark计算框架

原文:https://www.cnblogs.com/happyxiaoyu02/p/11706285.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!