zoukankan      html  css  js  c++  java
  • spark 性能优化

     1、内存

    spark.storage.memoryFraction:很明显,是指spark缓存的大小,默认比例0.6

    spark.shuffle.memoryFraction:管理executor中RDD和运行任务时的用于对象创建内存比例,默认0.2

    关于这两个参数的设置,常见的一个场景就是操作关系数据库

    spark 可以通过jdbc操作关系数据库,但是若是没有分散数据的依据,则将所有数据都读到driver节点上时,这时,强烈建议先看一下表的数据量和集群中对spark的内存设置参数

    假设 executor memory 大小设置为2G,也就是说,spark.shuffle.memoryFraction可用内存为2G*0.2=400M,假设5W条数据大小为1M,也就是说可以读取400*50W=2000W条

    当你在单节点上读取数据超过2000W而不能及时处理时,就有极大的可能oom

    内存设置

    spark.shuffle.memoryFraction 0.4  #适当调高

    spark.storage.memoryFraction 0.4 #适当调低

    2、开启外排序

    spark.sql.planner.externalSort true

    3、修改序列化工具

    spark.serializer                 org.apache.spark.serializer.KryoSerializer

    4、限制应用申请内核数

    spark.cores.max 15

    5、并行数

    spark.default.parallelism 90

    6、加入第三方常用类库

    spark.executor.extraClassPath /opt/spark/current/lib/sqljdbc41.jar:/opt/spark/current/lib/postgresql-9.4-1202-jdbc41.jar:spark-cassandra-connector-full.jar

    spark.driver.extraClassPath /opt/spark/current/lib/sqljdbc41.jar:/opt/spark/current/lib/postgresql-9.4-1202-jdbc41.jar:spark-cassandra-connector-full.jar

  • 相关阅读:
    关于wangEditor粘贴图片自动上传
    关于xheditor粘贴图片自动上传
    SAS如何看待大数据
    SAS如何看待大数据
    大数据时代的电子商务​_数据分析师
    大数据时代的电子商务​_数据分析师
    Python 微信公众号文章爬取
    leetcode_445. 两数相加 II
    手把手教你用Gurobi求解一个数学模型
    Python 微信公众号文章爬取
  • 原文地址:https://www.cnblogs.com/piaolingzxh/p/5428541.html
Copyright © 2011-2022 走看看