文档章节

关于Spark的基本概念和特性简介

openthings
 openthings
发布于 2015/06/25 10:16
字数 1152
阅读 6256
收藏 2

1、Spark是什么?

    ○ 高可伸缩性

    ○ 高容错

    ○ 基于内存计算

2、Spark的生态体系(BDAS,中文:伯利克分析栈)

    ○ MapReduce属于Hadoop生态体系之一,Spark则属于BDAS生态体系之一

    ○ Hadoop包含了MapReduce、HDFS、HBase、Hive、Zookeeper、Pig、Sqoop等

    ○ BDAS包含了Spark、Shark(相当于Hive)、BlinkDB、Spark Streaming(消息实时处理框架,类似Storm)等等

    ○ BDAS生态体系图:

    

3、Spark与MapReduce

    优势:

    ○ MapReduce通常将中间结果放到HDFS上,Spark是基于内存并行大数据框架,中间结果存放到内存,对于迭代数据Spark效率高。

    ○ MapReduce总是消耗大量时间排序,而有些场景不需要排序,Spark可以避免不必要的排序所带来的开销

    ○ Spark是一张有向无环图(从一个点出发最终无法回到该点的一个拓扑),并对其进行优化。

4、Spark支持的API

    Scala、Python、Java等

5、运行模式

    ○ Local (用于测试、开发)

    ○ Standlone (独立集群模式)

    ○ Spark on Yarn (Spark在Yarn上)

    ○ Spark on Mesos (Spark在Mesos)

6、运行时的Spark

    Driver程序启动多个Worker,Worker从文件系统加载数据并产生RDD(即数据放到RDD中,RDD是一个数据结构),并按照不同分区Cache到内存中。如图:

    

7、RDD

    ○ 英文名:Resilient Distributed Dataset

    ○ 中文名:弹性分布式数据集

    ○ 什么是RDD?RDD是一个只读、分区记录的集合,你可以把他理解为一个存储数据的数据结构!在Spark中一切基于RDD

    ○ RDD可以从以下几种方式创建:

        1、集合转换

        2、从文件系统(本地文件、HDFS、HBase)输入

        3、从父RDD转换(为什么需要父RDD呢?容错,下面会提及)

    ○ RDD的计算类型:

        1、Transformation:延迟执行,一个RDD通过该操作产生的新的RDD时不会立即执行,只有等到Action操作才会真正执行。

        2、Action:提交Spark作业,当Action时,Transformation类型的操作才会真正执行计算操作,然后产生最终结果输出。

        3、Hadoop提供处理的数据接口有Map和Reduce,而Spark提供的不仅仅有map和reduce,还有更多对数据处理的接口,如图下所示:

8、容错Lineage

    8.1、容错基本概念

        ○ 每个RDD都会记录自己所依赖的父RDD,一旦出现某个RDD的某些partition丢失,可以通过并行计算迅速恢复

    8.2、Narrow Dependent(窄依赖)和Wide Dependent(宽依赖)

        ○ RDD的依赖又分为Narrow Dependent(窄依赖)和Wide Dependent(宽依赖)

        ○ 窄依赖:每个partition最多只能给一个RDD使用,由于没有多重依赖,所以在一个节点上可以一次性将partition处理完,且一旦数据发生丢失或者损坏可以迅速从上一个RDD恢复

        ○ 宽依赖:每个partition可以给多个RDD使用,由于多重依赖,只有等到所有到达节点的数据处理完毕才能进行下一步处理,一旦发生数据丢失或者损 坏,则完蛋了,所以在这发生之前必须将上一次所有节点的数据进行物化(存储到磁盘上)处理,这样达到恢复。

        ○ 宽、窄依赖示例图:

        

9、缓存策略

    Spark通过useDisk、useMemory、deserialized、replication4个参数组成11种缓存策略。

    useDisk:使用磁盘缓存(boolean )

    useMemory:使用内存缓存(boolean)

    deserialized:反序列化(序列化是为了网络将对象进行传输,boolean:true反序列化\false序列化)

    replication:副本数量(int)

    通过StorageLevel类的构造传参的方式进行控制,结构如下:

    class StorageLevel private(useDisk : Boolean ,useMemory : Boolean ,deserialized : Boolean ,replication:Ini)

10、提交的方式

    ○ spark-submit(官方推荐)

    ○ sbt run

    ○ java -jar

    提交时可以指定各种参数

?

1
2
3
4
5
6
7
8
  ./bin/spark-submit    
-- class  <main- class >   
--master <master-url> 
--deploy-mode <deploy-mode> 
--conf <key> = <value> 
...  #  other options
<application-jar> 
[application-arguments]

例如:

关于更详细的submit-spark参考官方文档:http://spark.apache.org/docs/latest/submitting-applications.html


本文转载自:http://my.oschina.net/u/2377453/blog/469121

openthings
粉丝 322
博文 1134
码字总数 685726
作品 1
东城
架构师
私信 提问
Apache Spark 1.6 预览版:更简便的搜索

日前,Databricks公司发布了一个Apache Spark主要版本的可用性。除了可用性、可移植性等几个新的特性外,本次发布还提供了对尚未发布的Apache Spark 1.6预览。Databricks用户有机会在官方发布...

水门-kay
2015/12/21
2.9K
4
Spark2.1.0之基础知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/beliefer/article/details/80303035 在阅读本文之前,读者最好已经阅读了《Spark2.1.0之初识Spark》一文,本文...

泰山不老生
2018/05/24
0
0
Kylin 2.0 Spark Cubing 优化改进

Kylin 2.0 引入了Spark Cubing beta版本,本文主要介绍我是如何让 Spark Cubing 支持 启用Kerberos的HBase集群,再介绍下Spark Cubing的性能测试结果和适用场景。 Spark Cubing 简介 在简介S...

大数据之路
2012/08/28
339
0
Apache Spark 系列技术直播 - Spark SQL进阶与实战

Spark SQL进阶与实战 Spark相关组件介绍 Spark及其依赖组件 Hive Metastore介绍 Spark Thrift Server介绍 表与ETL Spark表基本概念 Spark建表最佳实践 Spark ETL最佳实践 动态分区表示例分析...

开源大数据
2018/12/05
0
0
SegmentFault D-Day 2015 北京:聊聊大数据

SegmentFault D-Day 介绍 SegmentFault D-Day,是由国内最前沿的开发者社区 SegmentFault 主办的技术沙⻰,于2014年正式启动。2015年上半年D-Day已在北、上、广、深、杭等城市成功举办9场,活...

文洁洁洁
2015/11/17
143
0

没有更多内容

加载失败,请刷新页面

加载更多

Jenkins World 贡献者峰会及专家答疑展位

本文首发于:Jenkins 中文社区 原文链接 作者:Marky Jackson 译者:shunw Jenkins World 贡献者峰会及专家答疑展位 本文为 Jenkins World 贡献者峰会活动期间的记录 Jenkins 15周岁啦!Jen...

Jenkins中文社区
23分钟前
6
0
杂谈:面向微服务的体系结构评审中需要问的三个问题

面向微服务的体系结构如今风靡全球。这是因为更快的部署节奏和更低的成本是面向微服务的体系结构的基本承诺。 然而,对于大多数试水的公司来说,开发活动更多的是将现有的单块应用程序转换为...

liululee
37分钟前
6
0
OSChina 周二乱弹 —— 我等饭呢,你是不是来错食堂了?

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @ 自行车丢了:给主编推荐首歌 《クリスマスの夜》- 岡村孝子 手机党少年们想听歌,请使劲儿戳(这里) @烽火燎原 :国庆快来,我需要长假! ...

小小编辑
今天
409
9
玩转 Springboot 2 之热部署(DevTools)

Devtools 介绍 SpringBoot 提供了热部署的功能,那啥是热部署累?SpringBoot官方是这样说的:只要类路径上的文件发生更改,就会自动重新启动应用程序。在IDE中工作时,这可能是一个有用的功能...

桌前明月
今天
5
0
CSS--列表

一、列表标识项 list-style-type none:去掉标识项 disc:默认实心圆 circle:空心圆 squire:矩形 二、列表项图片 list-style-img: 取值:url(路径) 三、列表项位置 list-style-position:...

wytao1995
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部