`

spark点滴

 
阅读更多

 

~spark的核心是把数据源抽象为分布式对象RDD,分布在各个计算节点的内存中。本地计算+内存+集群计算使得spark效率比较高。

~对于用户来说RDD自带各种算子,使得编写分布式程序和本地程序一样,而spark通过把RDD的算子转换成各个实际工作的task,并把task的序列化为class字节码,从而能在各个计算节点反序列化,加载并运行。

~,每个新的action操作都会使整个RDD重新计算,可以使用缓存解决。

~.sc.textFile()时,数据并没有读取进来,和转换操作一样,读取数据操作也有可能会被多次读取,这个是浪费内存的

~,RDD由分布在不同节点上的partition组成,partition是最小单位,每个分区上运行一个task, spark程序可以通过分区控制数据分布,以获得最少的网路传输。尽量使计算和数据在同一个节点,以此来提升性能。

~,如果两个RDD进行关联操作,可以先将大的RDD进行分区和持久化,使得小的RDD数据传输到大的RDD所在的分区,节省了网路传输。像reduceByKey,groupByKey等都会进行分区。控制好能提升性能。

~,累加器是讲工作节点中的值聚合到驱动器程序中的简单语法。

~,RDD闭包内的变量是会copy到每个Task中,但是广播变量只会copy至每个节点。如果变量数据量很大,则广播变量能提升性能。

~,基于分区对数据进行操作,可以避免为每个数据元素进行重复的配置工作,如数据库连接等。

~,yarn-client模式,客户端启动后直接运行用户程序,启动Driver相关的工作,driver向ClusterMaster注册,clusterMaster启动executor,另外driver充当AppMaster角色,即在客户端将RDD的一系列操作转换成DAG图,DAG图提交给DAGScheduler解析成一个个Stage,每个Stage由多个Task组成。然后把Task发送给个Executor执行。

~,yarn-cluster模式,客户端启动后提交app给ClusterMaster, clustMaster在一个executor启动driver,执行RDD为一系列task,分发至各executor执行。

~,spark基于yarn框架执行,spark的clustermaster即resourcemanager, spark的driver功能即yarn的AppMaster功能。spark的executor即yarn的container

~,窄依赖的RDD操作会在一个 stage内。

~,hadoop的configuration会广播至各个node节点上。

~,stage之间是依次执行的,不能并行

~,每个Spark应用可以有多个action操作,每个action操作触发一个job,每个job由多个stage组成,stage的划分是从触发的job的Rdd开始的(也就job的最后一个RDD),遇到宽依赖即确定宽依赖之后的RDD为一个stage,因此每一个stage结尾都是一个宽依赖,每个stage内的rdd操作由相同的Task执行,Task有两类,一类是ShuffleMapTask,用来处理stage内的所有操作直到宽依赖的shuffle过程,另一个Task类型是ResultTask,是最后一个stage的Task,因为他要负责此job的最终结果计算,并汇报给driver.

~,checkpoint机制实际上是将RDD的所有依赖计算的结果存入CheckPointRDD中,以此来替换依赖的rdd,下次计算时直接取checkpointrdd的分区数据就行。

分享到:
评论

相关推荐

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

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

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

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

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

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

    spark相关jar包

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

    spark笔记整理文档

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

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

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

    SparkDemo.rar

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

    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,...

    spark2 安装教程

    ### Spark2.0安装教程与Spark1.3共存配置详解 #### 一、引言 随着大数据技术的发展,Apache Spark 已成为处理大规模数据集的重要工具之一。然而,在实际应用过程中,不同的项目可能需要使用不同版本的 Spark 来...

    Spark官方中文文档

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

    Spark和TiDB (Spark on TiDB)

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

    spark0.2 和 spark0.5

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

    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