troubleshooting之解决yarn-client模式导致的网卡流量激增问题

Driver到底是什么?      我们写的spark程序,打成jar包,用spark-submit来提交。jar包中的一个main类,通过jvm的命令启动起来。 JVM进程,这个进程,其实就是咱们的Driver进程。 Driver进程启动起来以后,执行我们自己写的main函数,从new Spar...

2017-09-21 23:24:10

阅读数 289

评论数 0

troubleshooting之解决算子函数返回NULL导致的问题

在算子函数中,返回null //return actionRDD.mapToPair(new PairFunction() { // // private static final long serialVersionUID = 1L; // // @Override // public Tu...

2017-09-21 22:38:54

阅读数 197

评论数 0

troubleshooting之解决各种序列化导致的报错

你会看到什么样的序列化导致的报错? 用client模式去提交spark作业,观察本地打印出来的log。如果出现了类似于Serializable、Serialize等等字眼,报错的log,那么恭喜大家,就碰到了序列化问题导致的报错。 虽然是报错,但是序列化报错,应该是属于比较简单的了,很好处理。...

2017-09-21 22:23:32

阅读数 189

评论数 0

troubleshooting之解决YARN队列资源不足导致的application直接失败

1、YARN队列资源不足导致的application直接失败的 现象       如果说,你是基于yarn来提交spark。比如yarn-cluster或者yarn-client。你可以指定提交到某个hadoop队列上的。每个队列都是可以有自己的资源的。       跟大家说一个生产环境中的,...

2017-09-21 21:58:00

阅读数 918

评论数 0

troubleshooting之解决JVM GC导致的shuffle文件拉取失败

1、shuffle文件拉取原理图 2、JVM GC时,会导致spark作业出现什么问题? 比如,executor的JVM进程,可能内存不是很够用了。那么此时可能就会执行GC。minor GC or full GC。总之一旦发生了JVM之后,就会导致executor内,所有的工作...

2017-09-21 21:37:31

阅读数 179

评论数 0

troubleshooting之控制shuffle reduce端缓冲大小以避免OOM

1、rduce端task拉取map端数据的原理图 map端的task是不断的输出数据的,数据量可能是很大的。 但是,其实reduce端的task,并不是等到map端task将属于自己的那份数据全部写入磁盘文件之后,再去拉取的。map端写一点数据,reduce端task就会拉取一小部分数据,...

2017-09-21 21:02:12

阅读数 226

评论数 0

Spark--性能优化之解决数据倾斜

前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。 数据倾斜调优 调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时S...

2017-09-16 14:02:27

阅读数 325

评论数 0

Spark---性能调优之资源调优篇

资源调优 调优概述 在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合...

2017-09-16 13:35:38

阅读数 216

评论数 0

Spark---性能优化之开发篇

在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。Spark主要就是为了让大数据计算作业的执行速度更快、性能更高。 然而,...

2017-09-16 13:29:00

阅读数 242

评论数 0

Spark---Shuffle调优之调节map端内存缓冲与reduce端内存占比

1、map端内存缓冲,reduce端内存占比概述 map端内存缓冲,reduce端内存占比;很多资料、网上视频,都会说,这两个参数,是调节shuffle性能的不二选择,很有效果的样子,实际上,不是这样的。 以实际的生产经验来说,这两个参数没有那么重要,往往来说,shuffle的性能不是因为这方...

2017-09-16 11:52:52

阅读数 985

评论数 1

Spark--性能优化之shuffle调优

shuffle调优 调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影响一个Spark作业性能的因素,主要还是代...

2017-09-16 10:53:06

阅读数 247

评论数 0

Spark---JVM调优之调节executor离堆内存与连接等待时长

1、executor堆外内存 有时候,如果你的spark作业处理的数据量特别特别大,几亿数据量;然后spark作业一运行,时不时的报错,shuffle file cannot find,executor、task lost,out of memory(内存溢出); 可能是说executor...

2017-09-15 23:43:51

阅读数 1071

评论数 0

Spark---JVM调优之原理以及降低cache操作的内存占比

1、为什么需要jvm调优? spark的scala代码调用了很多java api。scala也是运行在java虚拟机中的。spark是运行在java虚拟机中的。 java虚拟机可能会产生什么样的问题:内存不足??!! 我们的RDD的缓存、task运行定义的算子函数,可能会创建很多对象。都...

2017-09-15 22:27:37

阅读数 585

评论数 0

Spark--性能调优之使用fastutil优化数据格式

1、fastutil介绍: fastutil是扩展了Java标准集合框架(Map、List、Set;HashMap、ArrayList、HashSet)的类库,提供了特殊类型的map、set、list和queue; fastutil能够提供更小的内存占用,更快的存取速度;我们使用fastutil...

2017-09-15 11:52:14

阅读数 202

评论数 0

Spark---性能调优之使用Kryo序列化

1、Spark默认的序列化机制和Kryo序列化机制相比有什么优势? 默认情况下,Spark内部是使用Java的序列化机制,ObjectOutputStream / ObjectInputStream,对象输入输出流机制,来进行序列化 这种默认序列化机制的好处在于,处理起来比较方便;也不需要我们手动...

2017-09-14 23:06:17

阅读数 399

评论数 0

Spark---性能调优之广播共享数据

假设有一个map,1M,举例。还算小的。如果你是从哪个表里面读取了一些维度数据,比方说,所有商品品类的信息,在某个算子函数中要使用到。100M。 1000个task。100G的数据,网络传输。集群瞬间因为这个原因消耗掉100G的内存。 每个task拷贝一个变量的副本会造成什么样的影响? 这种默认...

2017-09-14 00:15:38

阅读数 846

评论数 0

Spark---性能调优之重构RDD架构以及RDD持久化

1、当第一次对RDD2执行算子,获取RDD3的时候,就会从RDD1开始计算,就是读取HDFS文件,然后对RDD1执行算子,获取 到RDD2,然后再计算,得到RDD3。 2、默认情况下,多次对一个RDD执行算子,去获取不同的RDD;都会对这个RDD以及之前的父RDD,全部重新计算一次;读取HDFS-...

2017-09-13 23:09:21

阅读数 241

评论数 0

Task执行源码详细剖析

1、task是封装在一个线程中(TaskRunner) class TaskRunner( execBackend: ExecutorBackend, val taskId: Long, val attemptNumber: Int, taskNa...

2017-09-13 17:06:58

阅读数 250

评论数 0

Executor原理剖析与源码分析

版本:spark2.1.0 1、work中为application启动的executor,实际上是启动了CoarseGrainedExecutorBackend进程 private[spark] object CoarseGrainedExecutorBackend extends Loggi...

2017-09-13 15:11:05

阅读数 297

评论数 0

Spark---算子调优之filter过后使用coalesce减少分区数量

默认情况下,经过了这种filter之后,RDD中的每个partition的数据量,可能都不太一样了。(原本每个partition的数据量可能是差不多的) 问题: 1、每个partition数据量变少了,但是在后面进行处理的时候,还是要跟partition数量一样数量的task,来进行处理;有...

2017-09-12 00:54:07

阅读数 1419

评论数 0

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