随笔分类 -  Spark

spark学习内容
摘要:import org.apache.spark.sql.SparkSession import org.apache.spark.sql.functions._ import org.apache.spark.sql.types.TimestampType import org.apache.spa 阅读全文 »
posted @ 2021-01-28 21:02 宁君 阅读(98) 评论(0) 推荐(0) 编辑
摘要:Spark性能调优之资源分配 1. 分配哪些资源? spark任务可以分配的资源主要包括 executor、cpu per executor、memory per executor、driver memory 2. 在哪里分配这些资源? 在我们在生产环境中,在提交spark作业时,用的spark-s 阅读全文 »
posted @ 2020-12-29 18:54 宁君 阅读(598) 评论(0) 推荐(0) 编辑
摘要:Spark Shuffle调优之调节map端内存缓冲与reduce端内存占比 调优原理 默认情况下shuffle的map task输出到磁盘文件的时候,统一都会先写入每个task自己关联的一个内存缓冲区。这个缓冲区大小,默认是32kb。 每一次当内存缓冲区满溢之后才会进行spill操作(溢写操作)溢 阅读全文 »
posted @ 2020-12-29 18:53 宁君 阅读(324) 评论(0) 推荐(0) 编辑
摘要:一个 Spark 应用程序的完整执行流程 1、编写 Spark Application 应用程序 2、打 jar 包,通过 spark-submit 提交执行 3、SparkSubmit 提交执行 4、执行 Spark Application 的 main 方法 5、初始化 SparkContext 阅读全文 »
posted @ 2020-12-17 20:37 宁君 阅读(1408) 评论(1) 推荐(0) 编辑
摘要:Spark 的 RPC 什么是RPC 在Spark中很多地方都涉及网络通信,比如Spark各个组件间的消息互通、用户文件与Jar包的上传、节 点间的Shuffle过程、Block数据的复制与备份等。 如果把分布式系统(HDFS, HBASE,SPARK等)比作一个人,那么RPC可以认为是人体的血液循 阅读全文 »
posted @ 2020-12-17 20:21 宁君 阅读(112) 评论(0) 推荐(0) 编辑
摘要:Spark调优 1. 避免创建重复的RDD 1. 1. 一个简单的例子 2. 尽可能复用同一个RDD 2. 1. 一个简单的例子 3. 对多次使用的RDD持久化 3. 1. 对多次使用的RDD进行持久化的代码示例 3. 2. Spark的持久化级别 3. 3. 如何选择一种最合适的持久化策略 4. 阅读全文 »
posted @ 2020-12-17 19:46 宁君 阅读(101) 评论(0) 推荐(0) 编辑
摘要:Flink相对于Spark的优点 容错 Flink 基于两阶段提交实现了精确的一次处理语义。 Spark Streaming 只能做到不丢数据,但是有重复。 反压 Flink 在数据传输过程中使用了分布式阻塞队列,一个阻塞队列中,当队列满了以后发送者会被天然阻塞住,这种阻塞功能相当于给这个阻塞队列提 阅读全文 »
posted @ 2020-12-16 22:51 宁君 阅读(947) 评论(0) 推荐(0) 编辑
摘要:最详细10招Spark数据倾斜调优 数据量大并不可怕,可怕的是数据倾斜 。 数据倾斜发生的现象 绝大多数 task 执行得都非常快,但个别 task 执行极慢。 数据倾斜发生的原理 在进行 shuffle 的时候,必须将各个节点上相同的 key 的数据拉取到某个节点 上的一个 task 来进行处理, 阅读全文 »
posted @ 2020-12-15 23:28 宁君 阅读(551) 评论(0) 推荐(0) 编辑
摘要:1 尽量避免数据源的数据倾斜 比如数据源是Kafka 以Spark Stream通过DirectStream方式读取Kafka数据为例。由于Kafka的每一个Partition对应Spark的一个Task(Partition),所以Kafka内相关Topic的各Partition之间数据是否平衡,直 阅读全文 »
posted @ 2020-11-20 22:05 宁君 阅读(293) 评论(0) 推荐(0) 编辑
摘要:数据倾斜只会发生在shuffle过程中。这里给大家罗列一些常用的并且可能会触发shuffle操作的算子:distinct、groupByKey、reduceByKey、aggregateByKey、join、cogroup、repartition等。出现数据倾斜时,可能就是你的代码中使用了这些算子中 阅读全文 »
posted @ 2020-11-20 22:03 宁君 阅读(550) 评论(0) 推荐(0) 编辑
摘要:什么是数据倾斜 对Spark/Hadoop这样的大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜。 何谓数据倾斜?数据倾斜指的是,并行处理的数据集中,某一部分(如Spark或Kafka的一个Partition)的数据显著多于其它部分,从而使得该部分的处理速度成为整个数据集处理的瓶颈。 如果数据倾斜 阅读全文 »
posted @ 2020-11-20 22:02 宁君 阅读(111) 评论(0) 推荐(0) 编辑
摘要:1 内存调整要点 Memory Tuning,Java对象会占用原始数据2~5倍甚至更多的空间。最好的检测对象内存消耗的办法就是创建RDD,然后放到cache里面去,然后在UI上面看storage的变化。使用-XX:+UseCompressedOops选项可以压缩指针(8字节变成4字节)。在调用co 阅读全文 »
posted @ 2020-11-19 11:26 宁君 阅读(538) 评论(0) 推荐(1) 编辑
摘要:1 Spark Web UI Spark提供了一些基本的Web监控页面,对于日常监控十分有用。 通过http://master:4040(默认端口是4040,可以通过spark.ui.port修改)我们可以获得运行中的程序信息:(1)stages和tasks调度情况;(2)RDD大小及内存使用;(3 阅读全文 »
posted @ 2020-11-19 11:21 宁君 阅读(340) 评论(0) 推荐(0) 编辑
摘要:1基本概念和原则 每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面去执行。Stage指的是一组并行运行的task,stage内部是不能出现shuffle的,因为shuffle的就像篱笆一样阻止了并行task的运行 阅读全文 »
posted @ 2020-11-19 11:19 宁君 阅读(191) 评论(0) 推荐(0) 编辑
摘要:Spark性能优化指南——高级篇 Spark性能优化指南——基础篇 阅读全文 »
posted @ 2020-11-19 11:14 宁君 阅读(349) 评论(0) 推荐(0) 编辑
摘要:1.使用mapPartitions算子提高性能 mapPartition的优点:使用普通的map操作,假设一个partition中有1万条数据,那么function就要被执行1万次,但是使用mapPartitions操作之后,function仅仅会被执行一次,显然性能得到了很大的提升,这个就没必要在 阅读全文 »
posted @ 2020-11-19 11:13 宁君 阅读(446) 评论(0) 推荐(0) 编辑
摘要:1 task的内存缓冲调节参数 2 reduce端聚合内存占比 spark.shuffle.file.buffer map task的内存缓冲调节参数,默认是32kb spark.shuffle.memoryFraction reduce端聚合内存占比,默认0.2 怎么判断在什么时候对这两个参数进行 阅读全文 »
posted @ 2020-11-19 11:08 宁君 阅读(471) 评论(0) 推荐(0) 编辑
摘要:降低cache操作的内存占比 方案: 通过SparkConf.set("spark.storage.memoryFraction","0.6")来设定。默认是0.6,可以设置为0.5 0.3 等 原因: spark中,堆内存又被划分成了两块儿,一块儿是专门用来给RDD的cache、persist操作 阅读全文 »
posted @ 2020-11-19 11:07 宁君 阅读(356) 评论(0) 推荐(0) 编辑
摘要:数据本地化等待时长调节的优化 在项目该如何使用? 通过 spark.locality.wait 参数进行设置,默认为3s,6s,10s。 项目中代码展示: new SparkConf().set("spark.locality.wait","10"); 作者:z小赵 链接:https://www.j 阅读全文 »
posted @ 2020-11-19 11:05 宁君 阅读(174) 评论(0) 推荐(0) 编辑
摘要:广播大变量,重复用到的变量 原因见 https://www.jianshu.com/p/2c297b23ebda 阅读全文 »
posted @ 2020-11-19 11:04 宁君 阅读(127) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示