亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Spark Shuffle之Tungsten Sort Shuffle

標簽:
Spark

源文件放在github,随着理解的深入,不断更新,如有谬误之处,欢迎指正。原文链接https://github.com/jacksu/utils4s/blob/master/spark-knowledge/md/tungsten-sort-shuffle.md
正如你所知,spark实现了多种shuffle方法,通过 spark.shuffle.manager来确定。暂时总共有三种:hash shuffle、sort shuffle和tungsten-sort shuffle,从1.2.0开始默认为sort shuffle。本节主要介绍tungsten-sort。spark在1.4以后可以通过(spark.shuffle.manager = tungsten-sort)开启Tungsten-sort shuffle。如果Tungsten-sort 发现自己无法处理,则会自动使用 Sort Based Shuffle进行处理。Tungsten-sort优化点主要有:

  • 直接在serialized binary data上操作,不需要反序列化,使用unsafe内存copy函数直接copy数据。

  • 提供cache-efficient sorter  ShuffleExternalSorter  排序压缩记录指针和partition ids,使用一个8bytes的指针,把排序转化成了一个指针数组的排序。

  • spilling的时候不需要反序列化和序列化

  • spill的merge过程也无需反序列化即可完成,但需要shuffle.unsafe.fastMergeEnabled的支持

当且仅当下面条件都满足时,才会使用新的Shuffle方式:

  • Shuffle dependency 不能带有aggregation 或者输出需要排序

  • Shuffle 的序列化器需要是 KryoSerializer 或者 Spark SQL's 自定义的一些序列化方式.* > Shuffle 文件的数量不能大于 16777216

  • 序列化时,单条记录不能大于 128 MB

优点

很多性能的优化

缺点

  1. 不可以在mapper端排序

  2. 不稳定

  3. 没有提供off-heap排序缓存



作者:jacksu在简书
链接:https://www.jianshu.com/p/db3fea9c124c


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
算法工程師
手記
粉絲
41
獲贊與收藏
160

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消