spark
gerry.tan
喜欢大数据领域的开源框架技术,乐于总结学习与工作过程中的技术知识,希望与大家相互学习与探讨。有问题请直接联系QQ:1024412038
展开
-
spark2.1.0连接mysql
package scala21.sparkSQLimport java.sql.DriverManagerimport org.apache.spark.rdd.RDDimport org.apache.spark.sql._import org.apache.spark.sql.types.{DataTypes, StructField, StructType}import sc原创 2017-01-23 16:56:10 · 1199 阅读 · 0 评论 -
spark数据倾斜解决方案(一)炫酷的4个方案
A,数据倾斜解决方案 使用随机key实现双重聚合使用随机key实现双重聚合1、原理把key前面都加上个随机数,使得key分散,让key跑到不同的task上面去!然后再经过反向映射map算子再把前缀去掉,再去计算双重聚合就是聚合两遍2、使用场景(1)groupByKey(2)reduceByKey比较适合使用这种方式;join原创 2017-03-25 17:29:59 · 1483 阅读 · 0 评论 -
spark 数据倾斜解决方案 (二)聚合源数据以及过滤导致倾斜的key
数据倾斜解决方案 聚合源数据以及过滤导致倾斜的key数据倾斜的解决,跟之前讲解的性能调优,有一点异曲同工之妙。性能调优,跟大家讲过一个道理,“重剑无锋”。性能调优,调了半天,最有效,最直接,最简单的方式,就是加资源,加并行度,注意RDD架构(复用同一个RDD,加上cache缓存);shuffle、jvm等,次要的。数据倾斜,解决方案,第一个方案和第二个方案,一起来讲原创 2017-03-25 17:31:46 · 1003 阅读 · 0 评论 -
spark数据倾斜解决方案(三) 提高shuffle操作reduce并行度
数据倾斜解决方案 提高shuffle操作reduce并行度当我们设置spark.default.parallelism,100我们假设Map端有100个task,然后reduce端有100个task然后此时发生数据倾斜了,一个task有10万数据,其他task都只有10条数据假设第一个方案和第二个方案都不适合做!第三个方案,提高shuffle操作的reduce原创 2017-03-25 17:33:01 · 2630 阅读 · 0 评论 -
spark数据倾斜解决方案--原理及现象分析
数据倾斜解决方案 原理及现象分析最最有含金量,最最有实战性,最最有价值,最最有意义的这么个部分1、大数据开发流程(需求分析。。。性能调优)2、用户行为分析的业务(聚合统计、随机抽取、topn、排序)3、技术点:大数据项目模块的技术架构、spark core各种算子、自定义Accumulator、随机抽取算法、分组取topn、二次排序4、大数据项目中的性能调优原创 2017-03-25 17:36:26 · 1633 阅读 · 0 评论 -
spark性能调优(一)JVM调优
性能调优JVM调优原理概述不够炫但是很有用够炫听起来高端的1、常规性能调优:分配资源、并行度。。。等2、JVM调优(Java虚拟机):JVM相关的参数,通常情况下,如果你的硬件配置、基础的JVM的配置,都ok的话,JVM通常不会造成太严重的性能问题;反而更多的是,在troubleshooting中,JVM占了很重要的地位;JVM造成线上的spar原创 2017-03-25 17:41:23 · 819 阅读 · 0 评论 -
spark性能调优(二)shuffle调优
shuffle调优什么情况下会发生shuffle,然后shuffle的原理是什么,然后我们再一一的剖析!包括我们后面讲troubleShooting的时候还有我们之前JVM是不是都需要知道shuffle的原理!希望同学们把shuffle原理重视起来啊!什么样的情况下,会发生shuffle?在spark中,主要是以下几个算子:groupByKey、redu原创 2017-03-25 17:43:55 · 1214 阅读 · 0 评论 -
spark性能调优(三)shuffle的map端内存缓冲reduce端内存占比
性能优化 shufflespark.shuffle.file.buffer,默认32kspark.shuffle.memoryFraction,0.2map端内存缓冲,reduce端内存占比;很多资料、网上视频,都会说,这两个参数,是调节shuffle性能的不二选择,很有效果的样子,实际上,不是这样的。以实际的生产经验来说,这两个参数没有那么重要,往往来原创 2017-03-25 17:48:00 · 977 阅读 · 0 评论 -
spark性能调优(四)调节堆外内存和等待时长
调节堆外内存!!!executor堆外内存spark底层shuffle使用netty传输,所以使用了堆外内存!1.2之前是NIO就是socket,之后默认使用netty有时候,如果你的spark作业处理的数据量特别特别大,几亿数据量;然后spark作业一运行,时不时的报错,shuffle file cannot find,executor、task lost原创 2017-03-26 01:27:07 · 2535 阅读 · 1 评论 -
spark shuffle过程
1. SparkShuffle1. SparkShuffle概念reduceByKey会将上一个RDD中的每一个key对应的所有value聚合成一个value,然后生成一个新的RDD,元素类型是对的形式,这样每一个key对应一个聚合起来的value。问题:聚合之前,每一个key对应的value不一定都是在一个partition中,也不太可能在同一个节点上,因为RDD是分布式的弹性的数据集,R转载 2018-01-19 11:23:01 · 3913 阅读 · 0 评论 -
spark troubleshooting--YARN队列资源不足导致的application直接失败
troubleshooting YARN队列资源不足导致的application直接失败现象:如果说,你是基于yarn来提交spark。比如yarn-cluster或者yarn-client。你可以指定提交到某个hadoop队列上的。每个队列都是可以有自己的资源的。跟大家说一个生产环境中的,给spark用的yarn资源队列的情况:500G内存,200个cpu原创 2017-03-25 17:27:52 · 3095 阅读 · 1 评论 -
spark troubleshooting--算子函数返回NULL导致问题
troubleshooting 解决算子函数返回NULL导致问题在算子函数中,返回nullreturn actionRDD.mapToPair(new PairFunction() {private static final long serialVersionUID = 1L;@Overridepublic Tuple2 call(Row row)原创 2017-03-25 17:26:52 · 1349 阅读 · 0 评论 -
spark troubleshooting--解决各种序列化导致的错误
troubleshooting 解决各种序列化导致的错误你会看到什么样的序列化导致的报错?用client模式去提交spark作业,观察本地打印出来的log。如果出现了类似于Serializable、Serialize等等字眼,报错的log,那么恭喜大家,就碰到了序列化问题导致的报错。虽然是报错,但是序列化报错,应该是属于比较简单的了,很好处理。序原创 2017-03-25 17:25:34 · 662 阅读 · 0 评论 -
spark入门之WordCount
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-03-27 16:02:20 · 382 阅读 · 0 评论 -
SparkSql--JDBCDataSource
package spark21.sqlimport java.sql.DriverManagerimport org.apache.spark.rdd.RDDimport org.apache.spark.sql._import org.apache.spark.sql.types.{DataTypes, StructField, StructType}import scala.collecti原创 2017-03-27 16:18:32 · 604 阅读 · 0 评论 -
Spark性能优化——解决Spark数据倾斜
为何要处理数据倾斜(Data Skew) 什么是数据倾斜对Spark/Hadoop这样的大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜。何谓数据倾斜?数据倾斜指的是,并行处理的数据集中,某一部分(如Spark或Kafka的一个Partition)的数据显著多于其它部分,从而使得该部分的处理速度成为整个数据集处理的瓶颈。数据倾斜是如何造成的 在Sp转载 2017-03-25 17:16:54 · 473 阅读 · 0 评论 -
spark troubleshooting--JVM GC导致的shuffle文件拉取失败
troubleshooting JVM GC导致的shuffle文件拉取失败比如,executor的JVM进程,可能内存不是很够用了。那么此时可能就会执行GC。minor GC or full GC。总之一旦发生了JVM之后,就会导致executor内,所有的工作线程全部停止,比如BlockManager,基于netty的网络通信。有时会出现的一种情况,非常普遍,在原创 2017-03-25 17:20:00 · 455 阅读 · 0 评论 -
spark troubleshooting--shuffle reduce端缓冲大小以避免OOM
troubleshooting shuffle reduce端缓冲大小以避免OOM在我们IT里面就是解决线上故障!shuffle reduce 端工作原理reduce端默认buffer大小是48MB,spark的shuffle和MR的shuffle绝对是不一样的!!!map端的task是不断的输出数据的,数据量可能是很大的。但是,其实re原创 2017-03-25 17:21:18 · 655 阅读 · 0 评论 -
spark troubleshooting--yarn-client模式导致的网卡流量激增问题
troubleshooting yarn-client模式导致的网卡流量激增问题大公司都是通过Yarn来进行调度,mapreduce on yarn、spark on yarn、甚至storm on yarnYarn集群分成两种节点:ResourceManager负责资源的调度NodeManager负责资源的分配、应用程序执行这些东西通过Spark-su原创 2017-03-25 17:22:35 · 606 阅读 · 0 评论 -
spark troubleshooting--错误的持久化方式以及checkpoint的使用
troubleshooting 错误的持久化方式以及checkpoint的使用错误的持久化使用方式:usersRDD,想要对这个RDD做一个cache,希望能够在后面多次使用这个RDD的时候,不用反复重新计算RDD;可以直接使用通过各个节点上的executor的BlockManager管理的内存 / 磁盘上的数据,避免重新反复计算RDD。usersRDD原创 2017-03-25 17:23:22 · 655 阅读 · 1 评论 -
spark troubleshooting--解决yarn-cluster模式的JVM栈内存溢出问题
troubleshooting 解决yarn-cluster模式的JVM栈内存溢出问题大公司里面你的机器节点一般都是虚拟机啊!所以不能yarn-client会有网络激增的问题!Yarn-client模式可以跑,但是Yarn-cluster模式不能跑,就是报那么一个JVM永久代溢出的那么一个问题!1,spark-submit脚本提交spark applicatio原创 2017-03-25 17:24:34 · 562 阅读 · 0 评论