第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Spark Core 調(diào)優(yōu)指南

標(biāo)簽:
Spark

1 体系

webp

体系

2 配置

  • 资源分配

    • num-executors:executor的个数

    • executor-cores:cpu core 的两倍

    • executor-memory:每个executor的内存大小

    • driver-memory:driver的内存大小

  • 并行度

    • spark.default.parallelism

    • spark.sql.partitions

    • repartition(num)

  • 内存使用

    • spark.storage.memoryFraction:用于cache的内存比例

    • spark.shuffle.memoryFraction:shffule阶段的缓存占内存比例

3 代码

  • 不要重复创建RDD

  • 重复使用的RDD进行cache

  • 使用高性能算子

    • mapPartition代替map

    • foreachPartition代替foreach

    • 用reduceByKey代替groupByKey

  • filter以后使用coalesce减少小任务

  • 广播大变量:sc.broadcast

4 数据

  • 序列化

    • 使用KryoSerializer代替Java序列化

  • 文件格式

    • 使用parquet文件格式,列式存储,读取效率高

5 倾斜

  • 聚合(xxByKey)

    • 增加并行度

    • 局部聚合+全局聚合给每个Key加上前缀,聚合

    • 对上步聚合结果的Key去前缀,聚合

    • 抽样+过滤

    • 造成倾斜的Key数量小且不重要

    • 造成倾斜的Key数量多且重要

  • 连接

    • 造成倾斜的Key不多

    • 造成倾斜的Key多

    • 对RDD1进行sample找出造成倾斜的Key

    • 分别对RDD1和RDD2进行filter将其分成skewRDD1和commonRDD1以及skewRDD1和commonRDD2

    • 然后对skewRDD1的key添加随机前缀n,对skewRDD2进行n倍扩容,然后join,再对结果的key进行前缀移除得到joinRDD1

    • 将commonRDD1和commonRDD2进行连接,得到joinRDD2
      joinRDD1.union(joinRDD2)

    • 对RDD1进行随机前缀n的添加

    • 对RDD2进行n倍扩容

    • 然后进行连接

    • 进行随机前缀的移除处理得到结果

    • 将reduce join 转成map join

    • 使用广播变量将小表数据进行广播

    • SparkSQL设置spark.sql.autoBroadcastJoinThreshold,默认10m

    • 小表连接大表

    • 大表连接大表



作者:_和_
链接:https://www.jianshu.com/p/87a9c33b4009

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消