Spark总结篇(一)

这是一篇是划水的。。。。随便看看就好!!!!

Spark特点

以下特点来源官网主页,仅做翻译

  • Speed(快)
    Apache Spark achieves high performance for both batch and streaming data,
    实现了在批处理 和 流处理 的高速数据处理,
    using a state-of-the-art DAG scheduler, a query optimizer, and a physical execution engine.
    使用了先进的 DAG 调度,查询优化器 和 物理执行引擎

  • Ease of Use(易用)
    Write applications quickly in Java, Scala, Python, R, and SQL.
    可以使用 Java,Scala,Python,R,SQL 快速构建应用
    Spark offers over 80 high-level operators that make it easy to build parallel apps.
    Spark 提供超过80个高级的操作来轻松的构建分布式应用
    And you can use it interactively from the Scala, Python, R, and SQL shells.
    并且你可以使用 Scala, Python, R, 和 SQL shells 来进行混合编程

  • Generality(通用)
    Combine SQL, streaming, and complex analytics.
    综合了 SQL处理,流处理 和 复杂的数据分析
    Spark powers a stack of libraries including SQL and DataFrames,
    Spark 提供了一些列的库,包含:SQL and DataFrames(进行sql数据分析)
    MLlib for machine learning,
    MLlib 进行机器学习
    GraphX,
    图计算库
    and Spark Streaming.
    和 Spark Streaming进行流式计算,
    You can combine these libraries seamlessly in the same application.
    你可以在同一个应用中无缝的组合使用这些库

  • Runs Everywhere(运行在任何地方)
    Spark runs on Hadoop, Apache Mesos, Kubernetes, standalone, or in the cloud.
    Spark 可以运行在 Hadoop, Apache Mesos, Kubernetes, standalone, 甚至 云端
    It can access diverse data sources.
    并且其支持访问多种数据源

Spark 和 MapReduce

1.Spark可以基于内存处理数据,MR每次要落地磁盘
2.Spark有DAG有向无环图优化
3.Spark是粗粒度资源申请,MR是细粒度资源申请
4.Spark中有各种算子 ,MR中只有map 和reduce
5.Spark的shuffle 向对于MR来说有自己的优化同时有bypass机制

Spark运行模式

  • 本地模式
    开发过程中常用的模式,
    适用于本地测试调试,相当于一个单机程序。

  • Standalone 模式
    Spark 自带一种资源调度的集群叫 Standalone,
    如果将Spark运行在该集群上,我们叫叫做 Standalone 模式。
    在生产环境中使用不多,如果需要保证任务的稳定性,
    需要单独搭建一个集群,可以考虑

  • Yarn 模式
    在国内应该是使用最普遍的模式了吧。
    这也是Spark受欢迎的一个重要原因,
    毕竟大部分公司都是以 HDFS 作为储存系统,
    Yarn作为资源调度系统,
    Spark运行在yarn就可以完美的衔接在一起了。

Spark核心RDD

  • 什么是 RDD?
    RDD全称 Resilient Distributed Dataset,即 弹性分布式数据集。
    既然叫他数据集,那么其当然就是用来存储数据的,
    不过网上也大部分认为它是不存数据的,
    不过不管你怎么认为,在用户看来,
    通过从 Source数据 生成RDD,
    那么后续的所有对 该RDD 和 该RDD生成的RDD 操作,
    都是作用在 Source数据上的。

  • RDD 的五大特性
    源码中有以下注释:

    • A list of partitions
      RDD 是有一个 分区列表的,
      也就是说数据在RDD里面不是一个整体,
      而是一个个的分区的。
    • A function for computing each split
      这里 function 我更愿意理解成 算子,split 大致等于 分区,所以:
      一个算子的计算是作用在每一个的 分区的,
      所以分区数越多,那么计算的并行度就越高,
      结合第一条,那么提升RDD的并行度,只需要提升其分区数
    • A list of dependencies on other RDDs
      这个话是真不太好翻译,但是大概意思就是,RDD 之间是相互依赖的,
      RDD除了从源数据生成,就只剩下从RDD生成RDD这个方法了。
    • Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
      可选的,分区器是针对 K-V 格式的 RDD的。
      在发送 Shuffle 的时候,分区器决定了每条数据的去向。
    • Optionally, a list of preferred locations to compute each split on (e.g. block locations for an HDFS file)
      可选的,一个首选的位置的列表,可以提供给每个分区的计算的位置。
      也就是我们常说的数据本地化,计算向数据移动。
  • RDD宽窄依赖
    首先明确,依赖是作用于父子RDD之间的。

    • 窄依赖:
      如果一个父RDD的数据只进入到一个子RDD之中,
      那么就是窄依赖。
      即,一个子RDD是可以接受来自多个 父RDD 的数据的,
      只要这些 父RDD 的数据都是进入到该 子RDD 就还是窄依赖

    • 宽依赖
      如果一个父RDD的数据进入到多个子RDD之中,
      那么这就是宽依赖了。
      即,如果一个 父RDD 的数据分配到了多个子RDD 中,
      那这就是宽依赖。

  • 为什么要分宽窄依赖?
    宽窄依赖主要是为了用来切分 Stage 的,
    一个Stage里面的数据是通过pipeline的计算模式运行的,
    这也就是说,一个Stage里面的数据计算,
    是不需要落地,完全基于内存的。
    而Stage之间是会发生 Shuffle,会涉及到数据落地到磁盘。
    利用宽窄依赖就可以很好区分那部分运算可以分到一个Stage,
    减少落地磁盘的数据,加快计算速度。

#####################################################################################
感觉Spark很多东西网上都是有现成的,写起来也没啥成就感,
暂时还是先放放吧~~后续补充一下各个知识点的关键字,
大家网上搜索一下也就完事了,
没必要自己整~~~~

Spark资源调度

Spark任务调度

二次排序问题

分组取topN问题#

广播变量 累加器

Spark-Shuffle

Shuffle文件的寻址

内存管理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容