zoukankan      html  css  js  c++  java
  • Spark 性能调优提高任务效率

    1. 资源调优

    ①    搭建Spark集群的时候要给Spark集群足够的资源(core,memory)

    在spark安装包的conf下spark-env.sh

            SPARK_WORKER_CORES     --worker节点的可用核数

                   SPARK_WORKER_MEMORY

            SPARK_WORKER_INSTANCE

     

    在提交Application的时候给Application分配更多的资源。

    提交命令选项:(在提交Application的时候使用选项)

            --executor-cores

                   --executor-memory

                   --total-executor-cores

           

    配置信息:(在Application的代码中设置,在Spark-default.conf中设置)

           spark.executor.cores

                   spark.executor.memory

            spark.max.cores

     

    1. 并行度调优

    原则:一个core一般分配2~3个task,每一个task一般处理1G数据(task的复杂度类似wc)

    ①     提高并行度的方式:

    1) .如果读取的数据在HDFS上,降低block块的大小

    2) .sc.textFile(path,numPartitions)

    3) sc.parallelize(list,numPartitions) 一般用于测试

    4) coalesce、repartition可以提高RDD的分区数。

    5) 配置信息:

    spark.default.parallelism  not set (默认executor core的总个数)

    spark.sql.shuffle.partitions 200

    6) 自定义分区器

     

     

    1. 代码调优

    ①     避免创建重复的RDD

    val rdd1 = sc.textFile(“xxx”)

    val rdd2 = sc.textFile(“xxx”)

    在执行效率上没有区别,但是代码乱。

    ②     在其他的job中对于重复使用的RDD要使用持久化算子

    cache:

           MEMORY_ONLY

    persist:

           MEMORY_ONLY

           MEMORY_ONLY_SER

           MEMORY_AND_DISK_SER

    一般不要选择带有_2的持久化级别。

    checkpoint:

    ①    如果一个RDD的计算时间比较长或者计算起来比较复杂,一般将这个RDD的计算结果保存到HDFS上,这样数据会更加安全。

    ②    如果一个RDD的依赖关系非常长,也会使用checkpoint,会切断依赖关系,提高容错的效率。

    ③    尽量使用广播变量

    使用广播变量可以大大的降低集群中变量的副本数。

    不使用广播变量:变量的副本数和task数一致。

    使用广播变量:变量的副本数与Executor数一致。

    广播变量最大可以是多大?

    ExecutorMemory*60%*90%*80%

  • 相关阅读:
    HDU-1875-畅通工程再续(最小生成树)
    HDU-1325-Is It A Tree?(并查集+有向树)
    HDU-2473-Junk-Mail Filter(并查集删除)
    HDU-1233-还是畅通工程(最小生成树)
    POJ-2492-A Bug's Life(并查集分类)
    asp.net core 中KindEditor的使用
    使用FormsAuthenticationTicket进行登陆验证
    c#生成随机字符串
    string.Format对C#字符串格式化
    在Ubuntu上使用noip动态域名的方法(ddns)
  • 原文地址:https://www.cnblogs.com/eric666666/p/11288829.html
Copyright © 2011-2022 走看看