自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李献计的博客

sharing and going

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

原创 Spark调优之Shuffle调优 调节HashShuffleManager与SortShuffleManager

简述Shuffle Manager首先声明一点,笔者之前写的spark shuffle调优,基于的Shuffle Manager是HashShuffleManager。而Spark1.2.x以后,HashShuffleManager不再是Spark默认的Shuffle Manager。Spark1.2.x以后,Spark默认的Shuffle Manager是SortShuffleManager...

2019-07-07 13:07:55 446

原创 Spark调优之Shuffle调优 调节map端内存缓冲和reduce端内存占比

map端内存缓冲: spark.shuffle.file.buffer (map端内存缓冲,默认32kb)reduce端内存占比: spark.shuffle.memoryFraction (reduce端内存占比,默认0.2,20%)理论基础和问题背景:首先需要声明的是,这两个参数会被认为是调节shuffle的不二选择,但事实是调节这两个参数会对shuffle调优有效果,但并不是决定性的。...

2019-07-07 10:05:21 830

原创 Spark调优之Shuffle调优 合并map端输出文件

解决方法:SparkConf conf = new SparkConf ().set("spark.shuffle.consolidateFiles", "true");开启shuffle map端输出文件合并机制。默认情况下,不开启。不开启的话,会发生如下图及描述的严重情况:map端输出大量文件,严重影响性能。未开启map端输出文件合并机制的shuffle作业:下图的前置条件:每个ex...

2019-07-05 00:26:57 1262

原创 Spark性能调优之shuffle原理

shuffle原理概述:哪些情况下,spark会发生shuffle?spark中,以下几个算子会发生shuffle: groupByKey、reduceByKey、countByKey、join 等等什么是shuffle?groupByKey 就是把分散在集群上各个节点上的同一个key的数据,对应的values,集中到集群中同一个节点上。更准确的说,是集中到一个节点的一个executor的...

2019-07-01 22:53:40 820

原创 java项目导入Eeclipse 后,包变成了文件夹解决方法

背景:原本是包,导入eclipse后,包变成了文件夹解决:如下图: 右击项目 -> Build Path -> Configure Build Path…如下图: 选中Source -> 点击Add Folder… -> 选中文件夹 -> OK这样,文件夹就恢复成包了。注意:如果通过上述方法找不到的话,就尝试这样:Window -> Pref...

2019-07-01 21:38:48 4345

原创 Spark性能调优之JVM调优 降低cache操作的内存占比 spark.storage.memoryFraction

理论基础Spark就是用scala开发的,scala是运行在java虚拟机(JVM)上的,所以Spark也是运行在JVM上,而且Spark的scala代码中也调用了很多java api。这个理论基础很重要! 下面介绍通过调节JVM调节来优化Spark性能。 问题背景JVM中,每次存放创建的对象时,都是先放入Eden区域和其中一个survivor区域;另一个survivor区域是空...

2019-06-30 16:41:20 6227 1

原创 Spark性能调优之调节数据本地化等待时长 spark.locality.wait

我们写的spark作业称为application;一个application有多个job(一个action比如:collect操作触发一个job);每个job在发生shuffle(比如:reduceByKey)时,就会被拆成一个stage;每个stage被拆为多个task,task被分配到executor上执行,一个task会有一个线程去执行,一个task处理一小片数据。

2019-06-29 20:23:49 2720

原创 Spark性能调优之Kryo序列化

什么是Kryo序列化?Kryo序列化是Saprk支持的一种序列化机制,用来序列化类。在Spark作业中,需要你手动设置。Kryo序列化机制应用常场景:1.持久化RDD时进行序列化(比如:内存持久化 + 序列化。 详见笔者文章spark性能调优之RDD持久化) 每个executor分配了多个task,每个task对应有个partition,在将每个RDD partition序列化成一个大的字节...

2019-06-29 08:07:57 899

原创 Spark性能调优之Broadcast广播大变量

Broadcast广播大变量背景:spark作业中引用了外部变量时,spark会给每个task拷贝一份变量副本。那么,这会有什么缺点?又会对性能产生怎么用恶劣的影响呢?举例说明:假如有一个外部变量,大小是1M,被spark作业引用。Spark作业设置有500个task。首先,saprk会拷贝500份副本到task(如下图),而拷贝是通过网络传输的。共计就有500M全部通过网络传输,造成很大的...

2019-06-27 21:15:45 2679

原创 Spark性能调优之RDD持久化

RDD持久化在同一个spark作业中,如果有某个RDD被复用,那么该RDD就需要持久化。为什么要持久化RDD呢?如下图:如果RDD3到RDD4的计算完成后;下面要开始RDD3到RDD5的运算时,如果之前RDD3没做持久化,那么从RDD1到RDD3的运算又会再重复执行,浪费资源,浪费时间。如果对RDD3做了持久化,那么RDD3到RDD5时直接运算。RDD持久化分为:内存持久化内存持...

2019-06-27 21:10:41 479

原创 Spark性能调优之调节task并行度

Spark并行度是什么?我们写的spark作业就称为application;一个application有多个job(一个action比如:collect操作触发一个job);每个job在发生shuffle(比如:reduceByKey)时,就会被拆成一个stage;每个stage被拆为多个task,task被分配到executor上执行,一个task会有一个线程去执行,一个task处理一小...

2019-06-27 21:04:44 2676 1

原创 Spark性能调优之分配资源

分配资源分配资源优化Spark作业问题来了?怎么分配资源? 哪些资源会提高哪块性能?1.增加executor:2.增加每个executor的cpu core:3.增大每个executor的memory内存:结论分配资源优化Spark作业分配更多的资源才是性能调优的王道。 在写完一个spark作业后,要进行性能调优的时候,第一件事就是调配更多的资源;如果已经分配到你能力范围内的资源顶端后,公司无...

2019-06-26 21:24:54 732

原创 HDFS配置文件core-site.xml hdfs-site.xml 软连接到HBase

* core-site.xml$ ln -s /hadoop/etc/hadoop/core-site.xml /hbase/conf/core-site.xml* hdfs-site.xml$ ln -s /hadoop/etc/hadoop/hdfs-site.xml /hbase/conf/hdfs-site.xml(提示:不要忘记集群的其他几台机器也要做此操作)...

2019-05-25 14:32:00 2372

空空如也

空空如也

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

TA关注的人

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