zoukankan      html  css  js  c++  java
  • Spark简介

    1.  Spark是近年来发展较快的分布式并行数据处理框架,可以与Hadoop联合使用,增强Hadoop的性能。同时,Spark还增加了内存缓存、流数据处理、图数据处理等更为高级的数据处理能力。

    2.Spark的特点:

        ○ 高可伸缩性

        ○ 高容错

        ○ 基于内存计算

    3.Spark的生态体系:BDAS

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

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

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

    4.Spark与MapReduce相比的优势:

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

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

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

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

    6.RDD

        ○ 英文名:Resilient Distributed Dataset

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

        ○ 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,还有更多对数据处理的接口

    7.容错Lineage

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

    8.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)

    10.提交时使用spark-submit提交

  • 相关阅读:
    【华为云技术分享】昇腾AI处理器软件栈--总览
    【云速建站】SSL证书自助部署
    【华为云技术分享】如何做一个优秀软件-可扩展的架构,良好的编码,可信的过程
    C# Async和Await的异步编程例子
    委托的简单例子
    批量修改图片的尺寸(c#)
    使用TinyPNG提供的API,对图片进行压缩(C#)
    21. 合并两个排序单链表 Merge Two Sorted Lists
    263. 丑陋数 Ugly Number
    413. 数组切片 Arithmetic Slices
  • 原文地址:https://www.cnblogs.com/Mandylover/p/5154210.html
Copyright © 2011-2022 走看看