自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(56)
  • 收藏
  • 关注

原创 [spark 面试]Spark解决数据倾斜问题

一、前述数据倾斜问题是大数据中的头号问题,所以解决数据倾斜尤为重要,本文只针对几个常见的应用场景做些分析 。 二。具体方法  1、使用Hive ETL预处理数据方案适用场景:如果导致数据倾斜的是Hive表。如果该Hive表中的数据本身很不均匀(比如某个key对应了100万数据,其他key才对应了10条数据),而且业务场景需要频繁使用Spark对Hive表执行某个分析操作...

2018-08-31 20:24:03 1507 1

原创 [spark 面试]数据倾斜

一.首先明白招聘中“拥有大型项目/海量数据处理经验的意思”?    这个实质的意思不是你开发出大型项目和海量数据进行了处理的;它表达的意思是你是否有再大型项目/海量数据中的调优经验,而这种调优经验又必须再理解和阅读大量源码的基础上才能实现的。所以这句话转化的意思就是你是否有阅读源码和性能调优的经验。二.大数据中最关键的调优经验是什么?    数据倾斜,这是大数据处理专家的一个共识,因为...

2018-08-31 19:18:50 809

原创 [spark streaming]Driver容错安全性

内容 :ReceivedBlockTracker容错安全性 DStreamGraph和JobGenerator容错安全性    Driver的安全性主要从Spark Streaming自己运行机制的角度考虑的,如对源数据保存方面使用了WAL方式,驱动层面的容错安全主要使用的是CheckPoint ,  但是仅仅是WAL和CheckPoint在生成环境下不是完全足够的。   ...

2018-08-30 21:12:25 496

原创 [spark streaming]Executor容错安全性

一、Spark Streaming 数据安全性的考虑:Spark Streaming不断的接收数据,并且不断的产生Job,不断的提交Job给集群运行。所以这就涉及到一个非常重要的问题数据安全性。 Spark Streaming是基于Spark Core之上的,如果能够确保数据安全可好的话,在Spark Streaming生成Job的时候里面是基于RDD,即使运行的时候出现问题,那么Spark...

2018-08-30 17:10:13 287

转载 [spark streaming]Driver之ReceiverTracker技术内幕源码解密

上篇文章详细解析了Receiver不断接收数据的过程,在Receiver接收数据的过程中会将数据的元信息发送给ReceiverTracker:  本文将详细解析ReceiverTracker的的架构设计和具体实现源码解释:This class manages the execution of the receivers of ReceiverInputDStreams. ...

2018-08-29 00:07:37 244

转载 [spark streaming]Receiver数据接收全过程详解

一、Receiver启动过程回顾如图,从ReceiverTracker的start方法开始,调用launchReceivers()方法,给endpoint发送消息,endpoint.send(StartAllReceivers(receivers)),endpoint就是ReceiverTrackerEndpoint,ReceiverTrackerEndpoint调用startReceiv...

2018-08-29 00:05:37 3005

转载 [spark streaming]Receiver工作内幕源码分析

原创文章,转载请注明:转载自 听风居士博客(http://www.cnblogs.com/zhouyf/)      Spark streaming 程序需要不断接收新数据,然后进行业务逻辑处理,而用于接受数据的就是Recever。显然Receiver的正常运行对应整个Spark Streaming应用程序至关重要,如果Receiver出现异常,后面的业务逻辑就无从谈起。Spark Strea...

2018-08-29 00:03:35 554 1

原创 [spark streaming]Job动态生成和深度思考

本期内容:1、Spark Streaming Job生成深度思考2、Spark Streaming Job生成源码解析一、Spark Streaming Job生成深度思考源码解析:1. 在大数据处理场景中,如果不是流处理的话,一般会有定时任务。例如10分钟触发一次,1个小时触发一次,这就是做流处理的感觉,一切不是流处理,或者与流处理无关的数据都将是没有价值的数据,以前做批处理...

2018-08-28 19:36:56 744 1

原创 [spark streaming]JobScheduler内幕实现和深度思考

本期内容:1,JobScheduler内幕实现2,JobScheduler深度思考 摘要:JobScheduler是Spark Streaming整个调度的核心,其地位相当于Spark Core上的调度中心中的DAGScheduler!         一、JobScheduler内幕实现首先看看源码中对jobScheduler的解释:/** * This cl...

2018-08-28 19:23:59 331

转载 [spark streaming]生成RDD并执行Spark Job源码内幕解密

本博文主要包含以下内容:DStream产生RDD的案例实战演示 DStream作为RDD模板的原理机制 常见DStream生产RDD源码解密这种常见的DStream包含三种类型,一种是输入的级别的InputDStream,第二种transformationDStream,第三种输出级别的ForeachDStream。博文主要代码如下:object NetworkWordCoun...

2018-08-28 19:17:05 744

转载 [spark streaming] DStream 和 DStreamGraph 解析

前言Spark Streaming 是基于Spark Core将流式计算分解成一系列的小批处理任务来执行。在Spark Streaming里,总体负责任务的动态调度是JobScheduler,而JobScheduler有两个很重要的成员:JobGenerator和 ReceiverTracker。JobGenerator 负责将每个 batch 生成具体的 RDD DAG ,而Receiv...

2018-08-28 16:45:59 397

原创 [spark streaming] 架构和运行机制

本期内容:  1. Spark Streaming架构  2. Spark Streaming运行机制       3.解密Spark Streaming Job架构和运行机制       4.解密Spark Streaming 容错架构和运行机制  Spark大数据分析框架的核心部件: spark Core、spark  Streaming流计算、GraphX图计算、MLli...

2018-08-28 11:47:19 1430

转载 Spark性能优化第九季之Spark Tungsten内存使用彻底解密

一:Tungsten中到底什么是Page? 1.在Spark其实不存在Page这个类的。Page是一种数据结构(类似于Stack,List等),从OS层面上讲,Page代表了一个内存块,在Page里面可以存放数据,在OS中会存放很多不同的Page,当要获得数据的时候首先要定位具体是哪个Page中的数据,找到该Page之后从Page中根据特定的规则(例如说数据的offset和length)取出数据...

2018-08-28 10:44:17 697

转载 Spark性能优化第八季之Spark Tungsten-sort Based Shuffle

一:使用Tungsten功能 1, 如果想让您的程序使用Tungsten的功能,可以配置: Spark.Shuffle.Manager = tungsten-sort  Spark在钨丝计划下要管理两种类型的内存存储方式:堆内和堆外。为了管理他们,所以搞了一个Page。 堆外:指针直接指向数据本身。 堆内:指针首先指向Object,然后通过偏移量OffSet再具体定位到数据。 2...

2018-08-28 09:49:29 303

转载 Spark性能优化第七季之Spark 钨丝计划

一:“钨丝计划”产生的本质原因1,Spark作为一个一体化多元化的(大)数据处理通用平台,性能一直是其根本性的追求之一,Spark基于内存迭代(部分基于磁盘迭代)的模型极大的满足了人们对分布式系统处理性能的渴望,但是有Spark事采用Scala+Java语言编写的所以运行在JVM平台,当然JVM是一个绝对伟大的平台,因为JVM让整个离散的主机融为一体(网络即OS),但是JVM的死穴GC反过来限...

2018-08-28 09:47:02 224

转载 Spark性能优化第六季

一:Shuffle性能调优1,问题:Shuffle output file lost?真正的原因是GC导致的!!!如果GC尤其是Full GC产生通常会导致线程停止工作,这个时候下一个Stage的Task在默认情况下就会尝试重试来获取数据,一般重试3次每次重试的时间为5s,也就是说默认情况下15s内如果还是无法抓到数据的话,就会出现Shuffle output file lost等情况,进而会...

2018-08-28 09:46:11 185

转载 Spark性能优化第五季-数据本地性调优

一:性能优化之数据本地性1、数据本地性对分布式系统的性能而言是一件最为重要的情况之一,程序运行本身饮食代码和数据两部分,单机版本一般情况下很少考虑数据本地性的问题(因为数据在本地),但是对于单机版本的程序,由于数据本性有PROCESS_LOCAL和NODE_LOCAL之分, 所以,尽量让数据处于PROCESS_LOCAL级别。Spark作为分布式系统,更加注重数据本地性,在Spark中数据本地性...

2018-08-28 09:45:23 202

转载 Spark性能优化第四季

一:Spark性能调优之序列化1,之所以进行序列化,最重要的原因是内存空间有限(减少GC的压力,最大化的避免Full GC的产生,因为一旦产生Full GC则整个Task处于停止状态!!!)、减少磁盘IO的压力、减少网络IO的压力;2,什么时候会必要的产生序列化或反序列化呢?发生磁盘IO和网络通讯的时候会序列化和反序列化,更为重要的考虑序列化和反序列化的时候有另外两种情况:A)Pers...

2018-08-27 12:19:55 226

转载 Spark性能优化指南——数据倾斜和shuffle调优

前言继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证...

2018-08-27 12:07:28 201

转载 Spark性能优化第三季

Spark性能优化第三季一、Spark程序数据结构的优化 1、数据结构优化 2、内存诊断 3、Persist和Checkpoint 1、Java的对象:对象头是16个字节(例如指向对象的指针等元数据信息),如果对象中只有一个int的property,则此时会占据20个字节,也就是说对象的元数据占用了大部分的空间,所以在封装数据的时候尽量不要使用对象。例如使用JSON格式来封装数据。 ...

2018-08-27 11:48:04 182

转载 常见OOM异常

堆溢出当报错信息java.lang.OutOfMemoryError后面带有java heap space时,说明是java堆溢出。1由于Heap是用来存放实例的,堆溢出,也就说明了当前的实例对象过多,而且这些对象一直处于存活状态(JVM判断对象是否存活,是通过判断GC Roots和对象之间的是否存在可达路径)。出现这种问题,一般要考虑下列两种情况:内存泄露:一般出现这种情形,需...

2018-08-27 00:45:35 453

转载 Spark性能优化第二季

Spark性能优化第二季1、Task性能优化 2、数据倾斜性能优化 3、网络性能优化一、Task性能优化 1、慢任务的性能优化:可以考虑每个Partition处理的数据量,同时建议开启spark.speculation,开启任务推测,在任务还没有完成的情况下开启相同的任务,谁先执行完就执行它。 2、尽量减少Shuffle,例如我们要尽量减少groupByKey的操作,因为group...

2018-08-27 00:43:16 210

转载 Spark性能优化第一季

Spark性能优化第一季1、Spark性能优化需要思考的基本问题 2、CPU和Memory 3、并行度和Task 4、网络一、Spark性能优化核心基石 1、Spark是采用Master-Slaves的模式进行资源管理和任务执行管理的,对于资源管理 a)资源管理:Master-Worders,在一台机器上可以有多个Workers; b)任务执行:Driver-Executors...

2018-08-27 00:34:56 205

原创 [Spark性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析

主題大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言我们谈大数据性能调优,到底在谈什么,它的本质是什么,以及 Spark 在性能调优部份的要点,这两点让在进入性能调优之前都是一个至关重要的问题,它的本质限制了我们调优到底要达到一个什么样的目标或者说我们是从什么本源上进行调优。希望这...

2018-08-27 00:29:17 262

原创 Spark学习笔记1:Application,Driver,Job,Task,Stage理解

看了spark的原始论文和相关资料,对spark中的一些经常用到的术语做了一些梳理,记录下。1,Applicationapplication(应用)其实就是用spark-submit提交的程序。比方说spark examples中的计算pi的SparkPi。一个application通常包含三部分:从数据源(比方说HDFS)取数据形成RDD,通过RDD的transformation和act...

2018-08-27 00:23:18 944

原创 spark RPC详解

1,概述个人认为,如果把分布式系统(HDFS, HBASE,SPARK等)比作一个人,那么RPC可以认为是人体的血液循环系统。它将系统中各个不同的组件(如Hbase中的master, Regionserver, client)联系了起来。同样,在spark中,不同组件像driver,executor,worker,master(stanalone模式)之间的通信也是基于RPC来实现的。Sp...

2018-08-27 00:06:46 303

转载 Spark RPC(简约版)

一:Spark 1.6RPC解析1,Spark 1.6推出RpcEnv,RPCEndpoint,PRCEndpointRef为核心的新型架构下的RPC通信方式,就目前的实现而言,其底层依旧是Akka;2,Akka是基于Actor的分布式消息通信系统,而在Spark 1.6中封装了Akka,提供更高层的Rpc实现,目的是移除对Akka的依赖,为了扩展和自定义Rpc打下基础;二:RPCEn...

2018-08-27 00:05:33 207

转载 Spark Broadcast内幕解密(简约版)

一:Broadcast彻底解析1,Broadcast就是将数据从一个节点发送到其他的节点上;例如Driver上有一张表,而Executor中的每个并行的Task(100万个Task)都要查询这张表,那我们通过Broadcast方式就只需要往每个Executor把这张表发送一次就行了,Executor中的每个Task查询这张唯一的表,而不是每次执行的时候都从Driver获得这张表!2,这就好...

2018-08-26 18:36:16 266

原创 Spark Broadcast内幕解密:Broadcast运行机制彻底解密、Broadcast源码解析、Broadcast最佳实践

主题Broadcast 运行原理图 Broadcast 源码解析 Broadcast 运行原理图Broadcast 就是将数据从一个节点发送到其他的节点上; 例如 Driver 上有一张表,而 Executor 中的每个并行执行的Task (100万个Task) 都要查询这张表的话,那我们通过 Broadcast 的方式就只需要往每个Executor 把这张表发送一次就行了,Exe...

2018-08-26 18:35:16 674

转载 Checkpoint彻底解密(简约版)

1、Checkpoint重大价值 2、Checkpoint运行原理图 3、Checkpoint源码解析一、Checkpoint到底是什么? 1、Spark在生产环境下经常会面临Transformation的RDD非常多(例如一个Job中包含1万个RDD)或者具体Transformation产生的RDD本身计算特别复杂和耗时(例如计算时常超过1个小时),此时我们必须考虑对计算结果数据的持久...

2018-08-26 17:51:24 1267

原创 Checkpoint彻底解密:Checkpoint的运行原理和源码实现彻底详解

主题Checkpoint 运行原理图 Checkpoint 源码解析 引言Checkpoint 到底是什么和需要用 Checkpoint 解决什么问题:Spark 在生产环境下经常会面临 Transformation 的 RDD 非常多(例如一个Job 中包含1万个RDD) 或者是具体的 Transformation 产生的 RDD 本身计算特别复杂和耗时(例如计算时常超过1个...

2018-08-26 17:48:00 1819

转载 cacheManager彻底解密(简约版)

一:CacheManager分析:1, CacheManager管理的缓存,而缓存可以是基于内存的缓存,也可以是基于磁盘的缓存;2, CacheManager需要通过BlockManager来操作数据;3, 当Task运行的时候会调用RDD的compute方法进行计算,而compute方法会调用iterator方法:/** * Internal method to this RD...

2018-08-26 17:33:42 2731

原创 CacheManager彻底解密:CacheManager运行原理流程图和源码详解

主题 CacheManager 运行原理图 CacheManager 源码解析 CacheManager 运行原理图[下图是CacheManager的运行原理图]首先 RDD 是通过 iterator 来进行计算:CacheManager 会通过 BlockManager 从 Local 或者 Remote 获取数据直接通过 RDD 的 compute 进行计算,有可能...

2018-08-26 17:27:30 7190

转载 BlockManager原理和源码解密(简约版)

一、BlockManager运行实例观察从Application启动的角度来观察BlockManager;1,在Application启动时会在SparkEnv中注册BlockManagerMaster以及MapOutputTracker,其中a) BlockManagerMaster:对整个集群的Block数据进行管理的;b) MapOutputTracker:跟踪所有mapp...

2018-08-26 17:08:31 317

原创 BlockManager架构原理、运行流程图和源码解密

主题BlockManager 运行實例 BlockManager 原理流程图 BlockManager 源码解析 引言BlockManager 是管理整个Spark运行时的数据读写的,当然也包含数据存储本身,在这个基础之上进行读写操作,由于 Spark 本身是分布式的,所以 BlockManager 也是分布式的, BlockManager 原理流程图[下图是 Blo...

2018-08-26 17:06:25 253

转载 Task执行内幕与结果处理解密(简约版)

个人分类: spark1.当Driver中的CoarseGrainedSchedulerBackend给CoarseGrainedExecutorBackend发送LaunchTask之后,CoarseGrainedExecutorBackend在收到LaunchTask消息后,首先会反序列化TaskDescription:val taskDesc = ser.deserialize[...

2018-08-26 17:03:14 242

原创 Task执行内幕与结果处理解密

主题 Task执行内幕与结果处理解密 引言这一章我们主要关心的是 Task 是怎样被计算的以及结果是怎么被处理的了解 Task 是怎样被计算的以及结果是怎么被处理的 Task 执行原理流程图[下图是Task执行原理流程图]Executor 会通过 TaskRunner 在 ThreadPool 来运行具体的 Task,TaskRunner 内部会做一些准备的工作...

2018-08-26 15:30:57 293

原创 TaskScheduler内幕天机解密:Spark shell案例运行日志详解、TaskScheduler和SchedulerBackend、FIFO与FAIR、Task运行时本地性算法详解等

主題通过 Spark-shell 窥探程序运行时的状况 TaskScheduler 与 SchedulerBackend 之间的关系 FIFO 与 FAIR 两种调度模式彻底解密 Task 数据本地性资源分配源码实现 引言TaskScheduler 是 Spark 整个调度的底层调度器,底层调度器是负责具体 Task 本身的运行的,所以豪无疑问的是一个至关重要的内容。希望这篇文...

2018-08-25 19:49:20 461

原创 打通 Spark 系统运行内幕机制循环流程

引言通过 DAGScheduelr 面向整个 Job,然后划分成不同的 Stage,Stage 是從后往前划分的,执行的时候是從前往后执行的,每个 Stage 内部有一系列任務,前面有分享過,任务是并行计算啦,这是并行计算的逻辑是完全相同的,只不过是处理的数据不同而已,DAGScheduler 会以 TaskSet 的方式把我们一个 DAG 构造的 Stage 中的所有任务提交给底层的调度器 ...

2018-08-25 17:12:45 260

原创 Stage划分和Task最佳位置算法源码彻底解密

本課主題Job Stage 划分算法解密 Task 最佳位置算法實現解密 引言作业调度的划分算法以及 Task 的最佳位置的算法,因为 Stage 的划分是DAGScheduler 工作的核心,这也是关系到整个作业有集群中该怎么运行;其次就是数据本地性,Spark 一舨的代码都是链式表达的,这就让一个任务什么时候划分成 Stage,在大数据世界要追求最大化的数据本地性,所有最大化的...

2018-08-25 10:11:52 192

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除