spark学习笔记三:spark原理介绍

基本介绍

Spark是UC Berkeley AMPlab推出的分布式计算框架,目前有替代mapreduce的趋势。

Spark使用scala语言开发,支持的策略开发语言有:scala、python、java。

Spark的整个生态系统称为伯克利数据分析栈(BDAS)。Spark是伯克利数据分析栈(BDAS)的计算核心,相当于电脑中的CPU。

Spark可以完全融入hadoop生态系统(比如支持Hive、HDFS、HBase数据源),它只是替代了其中的mapreduce的计算模式。

基于MapReduce情况下,一人计算作业会被切分成多个MapReduce任务,每个MapReduce使用HDFS作为中间结果的存储介质。而Spark可以支持除map和reduce以外的更多操作,这些操作间形成一个无环图,各个操作之间的数据都在内存中。

 

计算模型

基本概念

l  Application:应用。可以认为是多次批量计算组合起来的过程,在物理上可以表现为你写的程序包+部署配置。应用的概念类似于计算机中的程序,它只是一个蓝本,尚没有运行起来。

l  RDD:Resilient Distributed Datasets,弹性分布式数据集。RDD即是计算模型里的一个概念,也是你编程时用到的一种类。一个RDD可以认为是spark在执行分布式计算时的一批相同来源、相同结构、相同用途的数据集,这个数据集可能被切割成多个分区,分布在不同的机器上,无论如何,这个数据集被称为一个RDD。在编程时,RDD对象就对应了这个数据集,并且RDD对象被当作一个数据操作的基本单位。比如,对某个RDD对象进行map操作,其实就相当于将数据集中的每个分区的每一条数据进行了map映射。

l  Partition:分区。一个RDD在物理上被切割成多个数据子集,分布在不同的机器上。每个数据子集叫一个分区。

l  RDD Graph:RDD组成的DAG(有向无环图)。RDD是不可变的,一个RDD经过某种操作后,会生成一个新的RDD。这样说来,一个Application中的程序,其内容基本上都是对各种RDD的操作,从源RDD,经过各种计算,产生中间RDD,最后生成你想要的RDD并输出。这个过程中的各个RDD,会构成一个有向无环图。

l  Lineage:血统。RDD这个概念本身包含了这种信息“由哪个父类RDD经过哪种操作得到”。所以某个RDD可以通过不断寻找父类,找到最原始的那个RDD。这条继承路径就认为是RDD的血统。

l  Job:从Application和RDD Graph的概念可以知道,一个应用往往对应了一个RDD Graph。这个应用在准备被spark集群运行前,

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值