Spark概述

1.什么是spark

        spark是新一代轻量级大数据处理平台。

 2.spark特点是什么?

        快速,易用,通用,随处运行,代码简洁

3.Spark与Hadoop MapReduce的对比:

       Hadoop MapReduce采用了多进程模型,而Spark采用了多线程模型

        Hadoop MapReduce基于磁盘,数据存放在HDFS中

        spark基于内存,数据存放在内存中。

4.什么是结构化数据与非结构化数据?

      结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据。  

      非结构化数据:不方便用数据库二维逻辑表来表现的数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。

5.Spark的应用场景是什么?

        (1). Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小;

  (2). 由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合:

  (3). 数据量不是特别大,但是要求实时统计分析需求。

6.认识Spark的生态圈

        现在Apache Spark已经形成一个丰富的生态圈,包括官方和第三方开发的组件或工具。Spark生态圈也称为伯克利数据分析线(Berkerley Data Analytics Stark,BDAS),由AMPLab打造,是致力于在算法(Algorithm),机器(Machine),人(People)之间通过大规模集成展现大数据应用的平台。

        Spark生态圈中重要组件的简要介绍如下:

        (1)Spark Core:Spark Core 是整个Spark生态系统的核心组件,是一个分布式大数据处理框架

        (2)BlinkDB:BlinkDB旨在提供快速的查询响应时间,同时保持较高的查询准确性。BlinkDB通过牺牲一定的查询准确性来实现低延迟的查询结果,这种权衡使得BlinkDB非常适用于需要快速响应的数据分析场景。

        (3)Spark SQL:Spark SQL 的前身是Shark,它发布时Hive 可以说是SQL on Hadoop 的唯一选择(Hive 负责将SQL 编译成可扩展的MapReduce 作业),鉴于Hive 的性能以及与Spark 的兼容,Shark 由此而生。

        (4)Spark Steaming:Spark Streaming 是一个对实时数据流进行高吞吐、高容错的流式处理系统,可以对多种数据源(如Kafka、Flume、Twitter 和ZeroMQ 等)进行类似Map、Reduce 和Join 等复杂操作,并将结果保存到外部文件系统、数据库或应用到实时仪表盘

        (5)MLBase:MLBase是Spark生态圈里的一部分,专门负责机器学习这块,学习门槛较低

        (6)GraphX:GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求

        (7)SparkR:

SparkR是一个R语言包,它提供了轻量级的方式使得可以在R语言中使用Apache Spark。在Spark 1.4中,SparkR实现了分布式的data frame,支持类似查询、过滤以及聚合的操作(类似于R中的data frames:dplyr),但是这个可以操作大规模的数据集。

7.Spark运行架构与原理

        Spark运行架构主要由 SparkContext、Cluster Manager和Worker 组成,其中ClusterManager负责整个集群的统一资源管理,Worker节点中的Executor是应用执行的主要进程,内部含有多个Task线程以及内存空间.

        (1)客户端:用户提交作业的客户端。

        (2)Driver:运行Applicationmain()函数并创建SparkContext

        (3)SparkContext:整个应用的上下文,控制应用的生命周期。

        (4)Cluster Manager:资源管理器,即在集群上获取资源的外部服务,目前主要有StandaloneSpark原生的资源管理器)和YARNHadoop集群的资源管理器)。

        (5)SparkWorker:集群中任何可以运行应用程序的节点,运行一个或多个Executor进程。

        (6)Executor:执行器,在Spark Worker上执行任务的组件、用于启动线程池运行任务。每个Application拥有独立的一组Executor

        (7)Task:被发送到某个Executor的具体任务

8.Spark作业运行流程

        Spark有3种运行模式,即Standalone,YARN和Mesos。

        (1) Standalone模式: Standalone模式是Spark自带的一种集群模式,不同于前面本地模式启动多个进程来模拟集群的环境,Standalone模式是真实地在多个机器之间搭建Spark集群的环境,完全可以利用该模式搭建多机器集群,用于实际的大数据处理。

        Stand alone 是完整的spark运行环境,其中 Master 角色以Master进程存在,worker角色以worker进程存在,Driver角色在运行时存在于Master进程内,Executor运行于Worker进程内

        Standalone模式运行流程:

    

    (2)YARN模式:YARN模式根据Driver在集群中的位置又分为两种,一种是YARN-Client模式(YARN客户端模式),另一种是YARN-Cluster模式(YARN集群模式)。

      yarn-cluster运行流程:

      yarn-client运行流程:

 

9.了解Spark核心数据集RDD 

        RDDResilient Distributed Datasets弹性分布式数据集),可以简单的把RDD理解成一个提供了许多操作接口的数据集合,和一般数据集不同的是,其实际数据分布存储于一批机器中(内存或磁盘中)

  转换算子和行动算子

  Spark RDD转换和操作示例 

宽依赖与窄依赖 :

窄依赖:表现为一个父RDD的分区对应于一个子RDD的分区或者多个父RDD的分区对应于一个子RDD的分区。

宽依赖:表现为存在一个父RDD的一个分区对应一个子RDD的多个分区。

RDD Stage划分:

         

        Stage划分的依据是:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值