`
bit1129
  • 浏览: 1070116 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Spark二九】涂鸦

 
阅读更多
 
涂鸦一
1. Spark为什么如此之外

a.基于内存

Spark将数据加载到内存中之后,此后的计算都在内存中进行,这就非常适合递归迭代的计算任务,同时对交互式即席查询型任务也能做到将数据加载到内存中,如下图所示。

b. DAG

Spark在内部将对数据的操作绘制成一张有向无环图,只有在真正需要结果的时候,才对数据依次执行这些操作。也就是说,在有向无环图中,除非需要结果而不得不进行计算时才会进行计算。否则只是进行标记操作

中间结果可复用

c. Scheduler.

任务调度系统更加细致。一个Work节点的虚拟机可以放多个任务(Task)而平行执行,它是线程级的并行,而在Hadoop中,一个任务必须开启一个虚拟机,不同的任务之间由于位于不同的JVM进程空间,只能依靠HDFS来共享数据。

在Spark中,一个作业(Job)的不同Task位于同一个虚拟机中,由于这些任务位于同一个JVM进程,因此它们可以共享JVM进程的内存空间,这样带来两个好处

1).启动任务,只需启动一个线程,这样带来的成本更低(跟Hadoop启动JVM做比较),实际上,Spark也不是启动任务启动线程,因为Spark使用线程池。

2).任务之间共享内存很容易,因为这些任务同属于一个进程内。

d.lineage(容错处理)

简单说,那个处理失败就重新计算哪个,而无需从头开始计算

A->B->C->D,假设计算D时,C出现问题,按照Hadoop的做法,此时ABCD都要重新计算,而对于Spark,只需要重新计算C,而无需计算A和B

 

2、 RDD

RDD可以看成Spark中内存的一个对象,如果RDD很大,那么Spark会Spill到磁盘中。

RDD的五个特性,其中一个是Partitioner,用于指定分区器。另外一个preferredLocation,它的含义是可以为RDD指定优先去哪里读数据,这是程序员干预数据本地性的一种手段。

RDD中的每个分片对应一个任务,也就是RDD处理的并行度是由分片决定的

RDD的DAG(静态)是在Driver Program中由SparkContext完成的,Driver提交作业给DAGScheduler是,已经是绘制好的DAG图,DAGScheduler会把静态的DAG图,切分为不同的Stage。

 

 

3. Driver、Master

a.Driver和Master有何区别?

b.Driver给Worker分配计算任务,而且Worker汇报计算给Driver,也就是说,Driver和Worker直接打交道以实现任务的分配和结果的汇报?

 
 
在这个图上有个关键的点事DAGScheduler运行于Master节点???不对,SparkContext持有DAGScheduler的实例,不是通过发消息的方式给DAGScheduler提交任务的

 4.ShuffledMapTask和ReduceTask都运行与线程池中,也就是说它们都在Workder的Executor的线程池中运行
 

涂鸦二

 

RDD之间的依赖关系有两种
    ShuffleDependency
        将Stage分开,划分为不同的Stage
    NarrowDependency
         将RDD划入到当前的Stage
Stage回溯是从后向前
DAGScheduler首先提交没有依赖的Stage,如果没有父Stage或者父Stage已经执行完,则提交这个Stage。计算从前往后。


把Stage如何从StageScheduler获取到
Task是通过Broadcat广播出去?所以在executor中能够获取到?



Driver是作业的主进程,创建SparkContext,解析计算生成RDD的DAG,作业的划分到不同的Stage,然后通过LaunchTask提交到Executor执行。
Driver包括作业和Executor两部分


Driver的两个层次,第一个层次是SparkContext以及围绕sc创建的sparkconf和sparkenv
第二层次是DAScheduler、TaskScheduler以及deploy部署模块,deploy部署模块给TaskScheduler使用以提交哦
作业。

Driver是Client的一部分,跟Client同一个进程(这是在client模式下吧)???


SparkContext是把用户编写的程序提交给Spark集群运行的通道



SparkConf读取java system properties的逻辑是什么?即读取哪些system properties。提交任务时
提交的参数是否会被SparkConf解析。在SparkConf中。

    设置executorEnv参数,executorEnv参数以spark.executorEnv开头
    设置AkkaEnv参数
    设置spark.driver.host以及spark.driver.port
    设置spark.master

SparkEnv包含的是
 
 
 
 
 
 
 
 
 
  • 大小: 112.3 KB
分享到:
评论

相关推荐

    spark安装包+spark实验安装软件

    Spark是Apache基金会下的一个开源大数据处理框架,以其高效、易用和可扩展性著称。Spark的核心设计理念是基于内存计算,极大地提升了数据处理速度。在本压缩包中,"spark-3.4.0-bin-without-hadoop"是Spark的一个预...

    大数据Spark纯净版安装包,用于快速集成Hive on Spark

    Spark纯净版安装包是一个用于安装Apache Spark的软件包,该软件包提供了Spark的基本功能和组件,但不包含任何额外的扩展或依赖项。纯净版安装包旨在提供一个轻量级、简单易用的Spark安装选项,适用于用户希望快速...

    springboot与spark整合开发, 练习spark api

    在现代大数据处理领域,Spark和Spring Boot的整合已经成为一种常见的技术组合。Spark作为一个快速、通用且可扩展的大数据处理框架,而Spring Boot则为构建微服务提供了简洁、高效的解决方案。本篇文章将深入探讨如何...

    spark相关jar包

    Spark是Apache软件基金会下的一个开源大数据处理框架,以其高效、灵活和可扩展的特性而闻名。Spark的核心设计是基于内存计算,它极大地提高了数据处理的速度,使得数据科学家和开发人员能够在处理大规模数据集时获得...

    spark笔记整理文档

    《Spark技术深度解析》 Spark,作为大数据处理领域的重要框架,以其高效、易用和弹性伸缩等特性,被广泛应用于大规模数据处理、实时计算、机器学习和图形处理等多个场景。本篇笔记将深入探讨Spark的核心概念、架构...

    SparkDemo.rar

    《Spark技术深度解析:从SparkCount到SparkSQL与SparkStreaming》 Spark,作为大数据处理领域的重要框架,以其高效、易用的特点受到了广泛的关注。在"SparkDemo.rar"这个压缩包中,包含了三个关键领域的示例:Spark...

    Spark 编程指南简体中文版.pdf

    Spark 编程指南简体中文版 本资源为 Spark 编程指南简体中文版,涵盖了 Spark 的基本概念、数据处理、流处理、图形处理和 SQL 等方面的内容。以下是该资源中的知识点总结: Spark 基础 * Spark Shell:交互式 ...

    spark全套视频教程

    《Spark全套视频教程》是一份全面讲解Apache Spark的教育资源,旨在帮助学习者深入理解和掌握这一强大的大数据处理框架。Spark以其高效、易用和多模态处理能力,在大数据领域备受推崇,广泛应用于数据处理、机器学习...

    Spark零基础思维导图(内含spark-core ,spark-streaming,spark-sql),总结的很全面.zip

    Spark零基础思维导图(内含spark-core ,spark-streaming,spark-sql),总结的很全面。 Spark零基础思维导图(内含spark-core ,spark-streaming,spark-sql)。 Spark零基础思维导图(内含spark-core ,spark-streaming,...

    Spark官方中文文档

    Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点...

    spark2 安装教程

    #### 二、环境准备 在开始安装之前,请确保以下条件已满足: 1. **Java 环境**:Spark 需要 Java 运行环境支持,推荐版本为 1.8 或以上。 2. **Hadoop 环境**:本教程假设已有 Hadoop 环境,并且版本不低于 2.6。 3...

    spark0.2 和 spark0.5

    在本主题中,我们将深入探讨Spark的早期版本——Spark 0.2和Spark 0.5,这两个版本对Spark的发展起到了重要的奠基作用。 **Spark 0.2** Spark 0.2是Spark的第一个公开发布的版本,它标志着Spark项目正式进入公众...

    Spark和TiDB (Spark on TiDB)

    SparkTI (Spark on TiDB)是TiDB基于Apache Spark的独立于原生系统的计算引擎。它将Spark和TiDB深度集成,在原有MySQL Workload之外借助Spark支持了更多样的用户场景和API。这个项目在SparkSQL和Catalyst引擎之外实现...

    openfire+spark+sparkweb

    【Openfire、Spark和SparkWeb】是一套开源的即时通讯解决方案,主要由Openfire服务器、Spark客户端和SparkWeb网页客户端组成。Openfire是基于XMPP协议的服务器,它提供了聊天、会议、文件传输等实时通信功能。Spark...

    spark_jar包

    Spark_JAR包是Apache Spark项目的核心组件之一,它包含了运行Spark应用程序所必需的类库和依赖。Spark作为一个快速、通用且可扩展的数据处理框架,它为大数据处理提供了丰富的API,支持Scala、Java、Python和R等多种...

    大数据Spark企业级实战

    《大数据Spark企业级实战》详细解析了企业级Spark开发所需的几乎所有技术内容,涵盖Spark的架构设计、Spark的集群搭建、Spark内核的解析、Spark SQL、MLLib、GraphX、Spark Streaming、Tachyon、SparkR、Spark多语言...

    Spark 入门实战系列

    Spark 入门实战系列,适合初学者,文档包括十部分内容,质量很好,为了感谢文档作者,也为了帮助更多的人入门,传播作者的心血,特此友情转贴: 1.Spark及其生态圈简介.pdf 2.Spark编译与部署(上)--基础环境搭建....

    ApacheSpark设计与实现.pdf+ApacheSpark源码剖析.pdf+Spark原著中文版.pdf

    Apache Spark 是一个强大的分布式计算框架,它以高效、易用和通用性著称。这个压缩包包含三本书籍,分别从不同的角度深入探讨了Spark的设计、实现和源码解析,对于理解和掌握Spark的核心原理和技术至关重要。 ...

    适配CDH6.3.2的Spark3.2.2

    Spark3.2.2是Apache Spark的一个重要版本,它提供了许多新特性和性能优化,而适配CDH6.3.2则意味着该版本的Spark已经经过了与Cloudera Data Hub (CDH) 6.3.2的兼容性验证。CDH是一个流行的Hadoop发行版,包含了...

    Spark The Definitive Guide-201712

    《Spark The Definitive Guide-201712》是大数据处理领域中一本非常重要的参考资料,由知名数据工程师及作者Bill Karwin 和 Databricks 的团队共同编写。这本书全面覆盖了Apache Spark的核心概念、技术和最佳实践,...

Global site tag (gtag.js) - Google Analytics