spark
淘之夭夭2016
从事hadoop,spark的开发工作,以及数据仓库,ETL流程开发。
展开
-
spark性能调优之分配资源
spark的分配资源主要就是 executor、cpu per executor、memory per executor、driver memory 等的调节,在我们在生产环境中,提交spark作业时,用的spark-submit shell脚本,里面调整对应的参数:/usr/local/spark/bin/spark-submit \--class cn.spark.sparktes原创 2016-09-28 20:43:49 · 3240 阅读 · 0 评论 -
spark JVM调优之原理概述以及降低cache操作的内存占比
每一次放对象的时候,都是放入eden区域,和其中一个survivor区域;另外一个survivor区域是空闲的。当eden区域和一个survivor区域放满了以后(spark运行过程中,产生的对象实在太多了),就会触发minor gc,小型垃圾回收。把不再使用的对象,从内存中清空,给后面新创建的对象腾出来点儿地方。清理掉了不再使用的对象之后,那么也会将存活下来的对象(还要继原创 2016-09-28 22:17:48 · 2077 阅读 · 0 评论 -
spark性能调优之调节数据本地化等待时长
本地化级别PROCESS_LOCAL:进程本地化,代码和数据在同一个进程中,也就是在同一个executor中;计算数据的task由executor执行,数据在executor的BlockManager中;性能最好NODE_LOCAL:节点本地化,代码和数据在同一个节点中;比如说,数据作为一个HDFS block块,就在节点上,而task在节点上某个executor中运行;或者是,数据和ta原创 2016-09-28 22:08:34 · 6933 阅读 · 0 评论 -
spark性能调优之使用fastutil优化数据格式
fastutil介绍:fastutil是扩展了Java标准集合框架(Map、List、Set;HashMap、ArrayList、HashSet)的类库,提供了特殊类型的map、set、list和queue;fastutil能够提供更小的内存占用,更快的存取速度;我们使用fastutil提供的集合类,来替代自己平时使用的JDK的原生的Map、List、Set,好处在于,fastut转载 2016-09-28 22:05:55 · 2522 阅读 · 0 评论 -
spark性能调优之使用Kryo序列化
在SparkConf中设置一个属性,spark.serializer,org.apache.spark.serializer.KryoSerializer类;注册你使用到的,需要通过Kryo序列化的,一些自定义类,SparkConf.registerKryoClasses()SparkConf.set("spark.serializer", "org.apache.spark.serial原创 2016-09-28 21:58:32 · 4551 阅读 · 0 评论 -
spark性能调优之广播大变量
广播变量,很简单其实就是SparkContext的broadcast()方法,传入你要广播的变量,即可final Broadcast>> broadcast = sc.broadcast(fastutilDateHourExtractMap);使用广播变量的时候,直接调用广播变量(Broadcast类型)的value() / getValue() ,可以获取到之前封装的广播变量原创 2016-09-28 21:34:40 · 10316 阅读 · 0 评论 -
spark性能调优之重构RDD架构,RDD持久化
当第一次对RDD2执行算子,获取RDD3的时候,就会从RDD1开始计算,就是读取HDFS文件,然后对RDD1执行算子,获取到RDD2,然后再计算,得到RDD3默认情况下,多次对一个RDD执行算子,去获取不同的RDD;都会对这个RDD以及之前的父RDD,全部重新计算一次;读取HDFS->RDD1->RDD2-RDD4这种情况,是绝对绝对,一定要避免的,一旦出现一个RDD重复计算的情况原创 2016-09-28 21:27:39 · 2411 阅读 · 0 评论 -
spark性能调优之提高并行度
并行度就是Spark作业中,各个stage的task数量,也就代表了Spark作业的在各个阶段(stage)的并行度。如果不调节并行度,导致并行度过低,会怎么样?假设,现在已经在spark-submit脚本里面,给我们的spark作业分配了足够多的资源,比如50个executor,每个executor有10G内存,每个executor有3个cpu core。基本已经达到了集群或者yar原创 2016-09-28 21:07:50 · 16594 阅读 · 1 评论 -
Spark 1.5.1客户端安装
安装spark客户端1、将spark-1.5.1-bin-hadoop2.4.tgz使用WinSCP上传到/usr/local目录下。2、解压缩spark包:tar -zxvf spark-1.5.1-bin-hadoop2.4.tgz。3、重命名spark目录:mv spark-1.5.1-bin-hadoop2.4 spark4、修改spark环境变量vi ~/.bashr原创 2016-09-28 20:21:06 · 2739 阅读 · 0 评论 -
spark JVM调优之调节executor堆外内存与连接等待时长
executor堆外内存有时候,如果你的spark作业处理的数据量特别特别大,几亿数据量;然后spark作业一运行,时不时的报错,shuffle file cannot find,executor、task lost,out of memory(内存溢出);可能是说executor的堆外内存不太够用,导致executor在运行的过程中,可能会内存溢出;然后可能导致后续的stage的原创 2016-09-28 22:22:46 · 5519 阅读 · 3 评论