0


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:运行Application的main()函数并创建SparkContext。

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

    (4)ClusterManager:资源管理器,即在集群上获取资源的外部服务,目前主要有Standalone(Spark原生的资源管理器)和YARN(Hadoop集群的资源管理器)。

    (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

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

** 转换算子和行动算子**

** Spark RDD转换和操作示例 **:

宽依赖与窄依赖 :

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

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

RDD Stage划分:


** **Stage划分的依据是:

标签: spark

本文转载自: https://blog.csdn.net/2301_78090070/article/details/136451448
版权归原作者 文静淑女 所有, 如有侵权,请联系我们删除。

“Spark概述”的评论:

还没有评论