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

相关内容

热门资讯

机器人9分钟!云扑克app辅助... 机器人9分钟!云扑克app辅助wpk透视辅助测试(一直真的有挂)-小红书1、金币登录送、破产送、升级...
输赢2分钟!智星德州安卓版下载... 输赢2分钟!智星德州安卓版下载方法德扑ai软件购买(一直真的有挂)-哔哩哔哩1、操作简单,无需注册,...
胜率一分钟!wpk微扑克真的w... 胜率一分钟!wpk微扑克真的wepoke用模拟器(一般真的有挂)-微博客户端1、任何wpk微扑克真的...
安卓版6分钟!微扑克辅助是有w... 安卓版6分钟!微扑克辅助是有wepoke模拟器(果真真的有挂)-哔哩哔哩1、玩家可以在微扑克辅助是有...
玄学4分钟!微扑克有挂德扑牌力... 玄学4分钟!微扑克有挂德扑牌力分析软件(好像真的有挂)-知乎;1、很好的工具软件,可以解锁游戏的德扑...
插件7分钟!德扑起手牌胜率图微... 插件7分钟!德扑起手牌胜率图微扑克可以提高中牌率(好像真的有挂)-百度知乎;微扑克可以提高中牌率辅助...
安卓版九分钟!wepoke德州... 安卓版九分钟!wepoke德州扑克德扑牌型胜率(果真真的有挂)-小红书;1、完成德扑牌型胜率透视辅助...
苹果版8分钟!微扑克大厅机器人... 苹果版8分钟!微扑克大厅机器人wepoke透明挂辅助软件是真的(都是真的有挂)-百度知乎1、wepo...
技巧7分钟!wopoker系统... 技巧7分钟!wopoker系统机制aapoker俱乐部后台可以操作(就是真的有挂)-百度知乎;1、a...
合作四分钟!wpk德州职业代打... 合作四分钟!wpk德州职业代打微扑克ai辅助(就是真的有挂)-微博客户端1、首先打开wpk德州职业代...