【大数据】Spark知识点简介

系列文章:
【大数据】Hadoop知识点简介
【大数据】YARN知识点简介
【大数据】Spark知识点简介

基本概念

  • RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象
  • DAG(Directed Acyclic Graph)有向无环图

为什么要用Spark?

主要是因为MapReduce模型是有缺陷的。一般来说,MapReduce将任务划分成Map和Reduce,中间再shuffle,有时候,我们会遇到一些迭代计算的任务,例如机器学习,会将Reduce输出的结果,重新作为Map的输入,而且这样的操作非常频繁,从而就会频繁地从硬盘的HDFS中存取数据,增大了时间开销。

而Spark则会将数据放到内存中计算,Spark的应用都是基于RDD的应用,能实现数据共享。每一次迭代,直接在内存中检索数据,从而节约执行时间。

Spark执行任务的特点:

  • 在内存中计算:中间结果缓存在内存中
  • 使用缓存在内存里面的RDD:能够执行快速的迭代查询任务
  • spark基于线程模型,MapReduce基于进程模型。

RDD

RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。

RDD分成很多小块,这些小块叫做partitions。partitions分布在集群的各个节点上。

可以在RDD上面执行两种操作:Transformations和Actions。

RDD是不能修改的(immutable)。


Spark的4种运行模式

  1. Local:一般在开发时在IDEA中本机使用
  2. Standalone:Spark自带的模式,如果一个集群是Standalone的话,就需要在多台机器上同时部署Spark环境。这种模式比较麻烦,在生产环境中使用得非常少。
  3. YARN:统一使用YARN对集群作业的资源管理和调度,建议使用。只需要在一台机器上提交Spark作业即可。
  4. Mesos:国内的公司很少使用。

注意:不管使用何种模式,Spark应用程序的代码都是一样的,只需要在提交的时候,使用--master参数来指定运行模式即可。


Spark on YARN

概述

  • Spark支持可插拔(随便指定哪一种都可以)的集群管理模式
  • 对于Spark on YARN,Spark Application仅仅是一个客户端(Client)而已,并不需要部署到多个机器上面。

Spark on YARN的两种模式

1.Client模式

Spark Driver的作用是作业调度。

Spark Driver运行在Client(也就是提交Spark作业的机器)中。

申请了资源以后,还要把作业分发到集群上面运行,因此Driver和集群的联系是不能中断的。???

Client会和请求到的Container进行通信,来完成作业的执行,Client在中途不能退出。

2.Cluster模式

Spark Driver运行在AM(可能在YARN管理的某台机器的Container)中。

由于Spark Driver的调度等工作不在本地,把作业提交上去以后,作业就会在YARN上运行,此时Client可以完全退出,对作业的执行没有任何影响。

两种模式对比
  • Driver的运行位置不同

    • Client模式:Driver运行在Client
    • Cluster模式:Driver运行在AM。
  • AM的职责不同

    • Client模式:AM的职责仅仅是向RM申请资源。
    • Cluster模式:AM不仅要申请资源,还要负责作业的调度,因为Driver是运行在AM上的。
  • 输出日志的位置不同

    • Client模式:日志信息会在控制台输出,以便测试。
    • Cluster模式:在控制台看不到日志信息,日志放在Driver所在的AM上,可以通过yarn application -logs application_id进行查询。

具体两种模式的运行区别,这篇文章给出了一个SparkPi程序的运行示例:Spark使用示例:分别使用client模式和cluster运行SparkPi程序


参考资料:
https://spark.apachecn.org/
http://spark.apachecn.org/#/docs/17
http://cwiki.apachecn.org/pages/viewpage.action?pageId=2883720

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值