ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spark : Config
    AI 2022. 8. 1. 11:19

    SparkConf

    import org.apache.spark.SparkContext
    import org.apache.spark.SparkConf
    
    val conf = new SparkConf().setAppName("Test").setMaster("yarn")
    conf.set("spark.executor.memory", "1g").set("spark.executor.cores", "1")
    val sc = new SparkContext(conf)

     

    설정 옵션

    설정 기본값 비고
    spark.driver.memory 2g Driver가 사용할 메모리
    spark.executor.memory 5g Executor가 사용할 메모리
    spark.executor.cores 1 Application에 사용할 코어 개수
    spark.driver.extraLibraryPath /opt/hadoop/lib/native Driver가 사용할 추가 라이브러리
    spark.driver.extraJavaOptions -Djava.library.path=/opt/hadoop/lib/native Driver의 자바 옵션
    spark.executor.extraLibraryPath /opt/hadoop/lib/native Executor가 사용할 추가 라이브러리
    spark.executor.extraJavaOptions -Djava.library.path=/opt/hadoop/lib/native Executor의 자바 옵션
    설정값은 spark-defaults.conf에 설정할 수 있다.
    // 설정값 확인
    val config_value = "spark.master"
    spark.conf.get(config_value)
    
    // result : String = yarn

     


    Executor

    • 하나의 Executor는 하나의 YARN Container라고 볼 수 있고, Task는 하나의 Core라고 볼 수 있다.
    • 하나의 Executor는 여러 개의 Task를 동시에 실행할 수 있다.
    • 하나의 Executor에 Task가 너무 많으면 Context Swiching, HDFS I/O로 인해 성능이 떨어지고 너무 작으면 하나의 JVM을 공유하는 장점이 사라진다.
    • 설정
    spark-shell 설정 spark 설정 Default 비고
    --num-executors spark.executor.instances 1 Executor 개수
    --executor-memory spark.executor.memory 512m Executor가 사용할 메모리
    --executor-cores spark.executor.cores 1 Application에 사용할 core 개수
      spark.yarn.executor.memroyOverhead 0.07 메모리 오버헤드 비율
      spark.executor.extraJavaOptions JVM 옵션  

    'AI' 카테고리의 다른 글

    Spark : Dataset / DataFrame  (0) 2022.07.29
    Spark : RDD  (0) 2022.07.27
    Spark : 구조  (0) 2022.07.26
    Spark : Basic  (0) 2022.07.26
    MLOps 입력값 드리프트  (0) 2022.07.13

    댓글

Designed by Tistory.