ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2020.05.08 오늘의 일지
    Dev/개발일지 2020. 6. 1. 02:57

    SparkSession 실행 관련 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public SparkSession setSpark(){
     
        SparkSession spark = SparkSession.builder()
                .master("local[*]")                                // Cluster DeployMode일 경우 주석처리
                .config("spark.submit.deployMode","cluster")    // Local 마스터일 경우 주석처리
                .config("spark.driver.host""localhost")        // Cluster DeployMode일 경우 주석처리
                .config("spark.cleaner.referenceTracking.cleanCheckpoints""true")
                .appName("MyApp").getOrCreate();
        spark.conf().set("spark.driver.allowMultipleContexts""true");
        spark.sparkContext().setLogLevel("ERROR");
        
        return spark;
    }
    cs


    Spark를 Local 모드로 실행하는 이유
    => 단 하나. 테스트 및 디버그

    Spark를 Cluster로 실행하는 이유
    => 원래 여러 노드를 실행하기 위해 존재하는 분산 데이터 프로세싱 프레임워크니깐.

    Local[*] 모드로 실행 시 .master 옵션 활성화 및 spark.driver.host 활성화

    cluster mode로 실행 시 .config("spark.submit.deployMode", "cluster") 활성화


    Spark 2 버전 부터는 SparkSession을 사용할 수 있다.
    물론 JavaSparkContext도 사용할 수 있지만, Spark Query를 사용하기 위해서 SparkSession을 사용했다.

    SparkSession의 Master, Config는 spark-submit에서 인자값으로 설정하는 것과 동일하다.
    물론, 우선 순위는 Driver Program의 소스 코드가 가장 최우선 순위지만, 설정을 동적으로 하고 싶다면 그냥 spark-submit 시 설정하는 것이 좋다.

     

    'Dev > 개발일지' 카테고리의 다른 글

    2020.06.04 오늘의 일지  (0) 2020.06.04
    2020.06.02 오늘의 일지  (0) 2020.06.02
    2020.05.07 오늘의 일지  (0) 2020.06.01
    2020.05.28 오늘의 일지  (1) 2020.05.28
    2020.05.27 오늘의 일지  (0) 2020.05.28

    댓글

Designed by Tistory.