ApacheSpark:长时间阻塞的Shuffle读取时间。为什么?
创始人
2024-09-06 12:30:34
0

通常情况下,Spark Shuffle操作是Spark应用程序中的瓶颈之一。当发现Shuffle操作时间较长时,可以遵循以下步骤进行排查和修复。

  1. 检查Shuffle分区大小是否足够。如果容量过小,可能会导致过多的Shuffle操作,令计算机无法及时处理,因此应该适当调整分区的容量。
  2. 检查数据存储设置。Spark有许多选项可以显着提高性能,例如:复制系数,缓存策略等。调整这些设置有助于提高Shuffle的速度。
  3. 使用专门的Shuffle优化工具调整Spark设置。例如Spark自带的Tungsten Shuffle委员会,可以帮助优化Shuffle操作。在优化后,长时间阻塞的Shuffle读取时间将会大大减少。

以下示例展示如何使用Tungsten Shuffle委员会优化Spark Shuffle:

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext

object SparkShuffle {
    def main(args: Array[String]) {
        val conf = new SparkConf().setAppName("SparkShuffle").setMaster("local")
        val sc = new SparkContext(conf)
        
        // 加载数据
        val data = sc.textFile("data.txt")
        val words = data.flatMap(line => line.split(" "))
        val pairs = words.map(word => (word, 1))
        
        // Tungsten Shuffle优化
        sc.getConf.set("spark.shuffle.manager", "tungsten-sort")
        sc.getConf.set("spark.shuffle.compress", "true")
        sc.getConf.set("spark.shuffle.spill.compress", "true")
        sc.getConf.set("spark.shuffle.file.buffer", "128k")
        
        // 聚合操作
        val counts = pairs.reduceByKey(_ + _)
        
        counts.saveAsTextFile

相关内容

热门资讯

分享一款!传送屋有挂吗,微信小... 分享一款!传送屋有挂吗,微信小程序财神十三张辅助(真是有挂)1、微信小程序财神十三张辅助免费脚本咨询...
如何分辨真伪!798大菠萝辅助... 如何分辨真伪!798大菠萝辅助,wejoker辅助软件价格,wpk教程(有挂规律);798大菠萝辅助...
教程辅助!功夫川麻小程序辅助器... 教程辅助!功夫川麻小程序辅助器,雀友会潮汕麻雀总部辅助(果然真的有挂)1、游戏颠覆性的策略玩法,独创...
每日必看!微信小程序跑得快辅助... 每日必看!微信小程序跑得快辅助脚本,aa poker辅助包,扑克教程(有挂秘笈)是一款可以让一直输的...
终于知道!南宁友乐辅助,挂是真... 终于知道!南宁友乐辅助,挂是真的假的(都是是真的有挂);1、下载好南宁友乐辅助正确养号方法之后点击打...
一分钟了解!人皇辅助软件下载,... 一分钟了解!人皇辅助软件下载,微乐小程序免费黑科技(其实有挂)1、操作简单,无需微乐小程序免费黑科技...
新手必备!美猴王房卡辅助,哈糖... 新手必备!美猴王房卡辅助,哈糖大菠萝破解器,系统教程(发现有挂);美猴王房卡辅助最新版本免费下载安装...
实测教程!微信老友广东辅助器,... 实测教程!微信老友广东辅助器,hhpoker免费辅助器,扑克教程(有挂方式);1、超多福利:超高返利...
解密关于!老友广东麻将有挂吗,... 解密关于!老友广东麻将有挂吗,闲来辅助器下载(本来有挂)1、进入到老友广东麻将有挂吗是否有挂之后,能...
玩家交流!微乐小程序辅助收费,... 玩家交流!微乐小程序辅助收费,新道游正版作弊(确实真的是有挂);1、金币登录送、破产送、升级送、活动...