Spark学习笔记

Hadoop中MapReduce计算框架是基于磁盘的,每次计算结果都会直接存储到磁盘,下一次计算又要从磁盘中读取,因而IO消耗大,迭代计算效率很低,且模型单一,不能适应复杂需求。Spark是一种基于内存的开源计算框架,迭代计算效率非常高。另外,MapReduce的计算是一步一步来的,而Spark将整个计算过程绘制成 DAG(有向无环图),优化了计算路径,这也是Spark计算速度较快的原因之一。

BDAS

BDAS是贝克利数据分析栈,如下图:
bdas

Spark Core

Spark Core和MapReduce一样是一个分布式大数据处理框架。包括如下几个部分:

  1. RDD: 弹性分布式数据集,是最重要的一类数据抽象。
    1. RDD是抽象类,不同操作生成相应的子类,类提供操作RDD的接口
    2. 惰性计算,遇到action算子才真正执行计算
    3. 对父RDD可存在依赖关系,分为窄依赖和宽依赖
    4. 内部数据只读
    5. 分区,数目尽可能等于集群核心数目
  2. Driver 进程:负责初始化和关闭SparkContext
  3. SparkContext:计算入口,负责加载配置文件,准备运行环境
  4. ClusterManager:集群资源管理器,包括YARN、Standlone和Mesos
  5. DAGScheduler:面向Stage的任务调度器,根据RDD依赖关系将Job划分成Stage
  6. TaskScheduler:面向Task的任务调度器,接收来自DAGScheduler的每个Stage中的Taskset,将其提交给Executor
  7. Executor进程:工作节点上运行的一组计算进程,每个进程又可以启动线程池

计算流程图

通常将实际运行Spark应用程序的节点命名为Worker。整个计算流程图如下图所示:
spark

参考资料

Spark核心源码分析与开发实战, 王家林等
Spark原理、机制及应用,符积高等

注:如有不当之处,请指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值