
Spark
Spark相关
看朱成碧_
The more you know, the more you don't know.
展开
-
Spark Streaming 性能调优指南
要在集群上的Spark Streaming应用程序中获得最佳性能,需要进行一些调整。本文介绍了如何调整参数和配置以提高应用程序性能。这些主要是基于以下两个层次进行考量的。过有效使用群集资源减少每批数据的处理时间。设置正确的批处理大小,以便可以按接收到的批处理速度处理一批数据(也就是说,数据处理跟上数据拉取的速度)。1、减少批处理时间Spark可以进行很多优化,以最大程度地减少每批的处理时间。下面进行简单介绍。1.1...原创 2020-06-19 13:39:21 · 596 阅读 · 0 评论 -
Spark Streaming官方编程指南【上】
定义Spark Streaming是核心Spark API的扩展,可实现实时数据流的可伸缩,高吞吐量,容错流处理。数据可以从像 Kafka, Flume, Kinesis,或TCP socket等来源摄入,并且可以使用与像高级别功能表达复杂的算法来处理map,reduce,join和window。最后,可以将处理后的数据推送到文件系统,数据库和实时面板。并且,我们可以在数据流上应用Spark的 机器学习和图形处理算法。在内部,它的工作方式如下。Spark Streaming接收实时输入数据流,并将数据原创 2020-06-10 16:00:19 · 1206 阅读 · 7 评论 -
Spark SparkEnv类的组件介绍
前言SparkEnv是spark计算层的基石,不管是Driver还是Executor,都需要依赖SparkEnv来进行计算,它是Spark的执行环境对象,其中包括与众多Executor执行相关的对象。Spark 对任务的计算都依托于 Executor 的能力,所有的 Executor 都有自己的 Spark 的执行环境 SparkEnv。有了 SparkEnv,就可以将数据存储在存储体系中;就能利用计算引擎对计算任务进行处理,就可以在节点间进行通信等。下面我们来分析一下SparkEnv的构成。正文1原创 2020-06-03 15:48:54 · 404 阅读 · 0 评论 -
Spark Executor 执行Task的过程
前言前面分析了Task Scheduler划分Task的过程,Task在Task SchedulerImpl类中被包装成stageTaskSets,然后由DriverEndpoint发送,最后由CoarseGrainedSchedulerBackend序列化并启动Executor。现在开始分析Executor执行任务的过程。正文1、Executor接收到LunchTask消息CoarseGrainedSchedulerBackend发送一条LunchTask消息后(executorData.exe原创 2020-06-02 21:53:30 · 1019 阅读 · 0 评论 -
Spark Task Scheduler划分task过程
前言前面分析过了DAG Scheduler划分stage的过程【感兴趣的话可以看看DAG Scheduler划分stage的过程】,现在我们开始看看Task Scheduler是如何划分Task的。正文首先看DAG Scheduler提交TaskSet的方法,这个方法是submitMissingTasks(stage: Stage, jobId: Int)方法。(这个方法把stage和jobID传进去,stage存的是stage的最后一个RDD,这个RDD可以通过血缘关系将前面的RDD序列化) p原创 2020-06-02 17:15:05 · 934 阅读 · 0 评论 -
说一说对于“Spark是内存计算框架”的理解
sssss原创 2020-05-28 21:33:53 · 1790 阅读 · 3 评论 -
Spark DAG Scheduler划分Stage的过程
前言我们知道,Spark是惰性计算的,只有遇到Action算子时,才会发生计算过程,那么这个计算过程是如何发生的呢?首先,DAG Scheduler会通过shuffle操作来划分Stage,所以在一个Stage中的任务一定是窄依赖,也就是说,它们不需要依赖其他节点的计算就能完成自己的任务,即一个Stage里的任务可以并行计算。那么DAG Scheduler是如何划分Stage的?我们以wordCount为例,程序运行到foreach操作的时候,调用SparkContext的Runjob方法。正文原创 2020-05-28 16:38:26 · 517 阅读 · 1 评论 -
Spark的四种运行模式详解
前言Spark注重建立良好的生态系统,它不仅支持多种外部文件存储系统,提供了多种多样的集群运行模式。部署在单台机器上时,既可以用本地(Local)模式运行,也可以使用伪分布式模式来运行;当以分布式集群部署的时候,可以根据自己集群的实际情况选择Standalone模式(Spark自带的模式)、Spark on YARN模式或者Spark on mesos模式。Spark的各种运行模式虽然在启动方式、运行位置、调度策略上各有不同,但它们的目的基本都是一致的,就是在合适的位置安全可靠的根据用户的配置和Job的需原创 2020-05-22 10:40:06 · 10393 阅读 · 6 评论 -
Spark Transform算子和Action算子速查
前言RDD是spark中最重要的抽象单位,所有的高级操作细化到底层,都是由RDD来完成的,RDD的操作有很多,但从计算的角度来划分,RDD可以分为转换算子和执行算子。之前我们也讲到,RDD是惰性加载的,转换算子创建时并不会执行计算过程,只有当遇到执行算子时才会产生计算。本文就RDD的转换操作和执行操作作一个总结。正文首先创建执行环境和数据集 val conf: SparkConf = new SparkConf().setMaster("local").setAppName("test01"原创 2020-05-20 16:44:58 · 494 阅读 · 0 评论 -
Spark RDD中repartition和coalesce的区别
1、repartitionrepartition会根据用户传入的分区数重新通过网络分区所有数据,它会产生shuffle过程,所以是一个重型操作。 val kv1: RDD[(String, Int)] = sc.parallelize(List( ("zhangsan", 11), ("zhangsan", 12), ("lisi", 13), ("wangwu", 14) )) val kv2: RDD[(String, Int)]原创 2020-05-19 23:22:49 · 767 阅读 · 0 评论 -
Spark RDD、广播变量简介
一、RDD1.1 什么是RDD?RDD(Resilient Distributed Dataset),意为弹性分布式数据集,为什么说它是弹性呢?因为当计算过程中内存不够时,它会和磁盘进行数据交换,同样的,分布式的意思是它分布在不同的节点中进行计算,我们可以将RDD看成是一个分布式对象的集合,它本质上是一个只读的分区记录的集合,每个RDD可以分成多个分区,每个分区都是一个独立的数据集片段,一个RDD的不同分区可以保存到集群的不同节点上,从而可以实现并行计算。从源码的角度看,RDD是一个类,它包含了数据应原创 2020-05-18 23:24:54 · 1293 阅读 · 7 评论 -
Spark聚合计算API
Spark聚合计算API// 创建数据集 val data: RDD[(String, Int)] = sc.parallelize(List( ("zhangsan", 234), ("zhangsan", 5667), ("zhangsan", 343), ("lisi", 212), ("lisi", 44), ...原创 2020-05-04 11:39:54 · 342 阅读 · 0 评论 -
Spark PV、UV分析
PV、UV分析常用于MapReduce的离线日志分析系统中,那么如果用Spark该怎么做呢?本文仅对数据进行统计进行分析,权当抛砖引玉,希望能看到大佬对其进行更深入的操作。1、需求根据数据计算各网站的PV,UV,同时,只显示top5(按PV值,或者UV值排序,取前5名)2、 数据数据是对13w+条PV、UV记录,数据的格式如下,列之间用tab分隔,如果读者感兴趣,可以点击这里下载。...原创 2020-05-04 09:46:34 · 733 阅读 · 3 评论 -
Spark集合操作API之交并集、笛卡尔积、Join
大数据的面试除了手撕算法之外,还有手撕Hql,手撕Spark RDD等“额外套餐”,本文就是专为应对面试中手撕Spark准备的操作指南,如有错误还请指正。我们先准备一个数据集。 val rdd1: RDD[Int] = sc.parallelize( List( 1,2,3,4,5) ) val rdd2: RDD[Int] = sc.parallelize( List(...原创 2020-05-03 21:25:09 · 1433 阅读 · 0 评论 -
spark wordcount源码分析及案例图解
1. wordcount代码wordcount作为大多数spark甚至大数据学习阶段的第一个案例,具有很好的教学意义,本文同样使用wordcount作为案例,对它在spark中的运行过程作一个详细的讲解。import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object WordCo...原创 2020-05-01 20:05:27 · 732 阅读 · 0 评论 -
spark启动显示Unsupported major.minor version 52.0错误
问题原因在学spark的过程中遇到这个问题,启动集群的时候,mini1(master节点)启动成功,jps能看到这个进程,而worker没有启动查看原因,发现报了这个错java.lang.UnsupportedClassVersionError…Unsupported major.minor version 52.0。原因是jdk版本太低,我用的是spark2.2.0版本,要求jdk版本至少是1...原创 2020-04-02 23:10:40 · 1086 阅读 · 0 评论