[Spark] AWS EMR 클라우드 기반 Spark 클러스터 실행

EMR 이란?

EMR(Elastic MapReduce). AWS의 Hadoop 서비스(On-demand Hadoop)로 Hadoop(YARM), Spark, Hive, Notebook(Zeppelin) 등이 설치되어 제공되는 서비스.

EC2 서버들을 worker node로 사용하고 S3를 HDFS로 사용

 

Spark on EMR 실행

  • AWS의 EMR 클러스터 생성
    • EMR 생성시 Spark 실행(옵션 선택)
    • S3를 기본 파일 시스템으로 사용
  • EMR의 마스터 노드를 드라이버 노드로 사용
    • 마스터 노드를 SSH 로그인(spark-submit 사용)
    • Spark의 Cluster 모드에 해당

🔽 관련 포스팅 확인 Cluster 모드가 무엇인지 모른다면? 

 

[Spark] YARN 기반 Spark Cluster 프로그램의 구조

Spark 프로그램의 구조Driver실행되는 코드의 마스터 역할 수행(YARN의 Application Master)사용자 코드를 실제 Spark 태스크로 변환해 Spark 클러스터에서 실행실행모드(client, cluster)에 따라 실행되는 곳이

ourjune.tistory.com

1. AWS EMR 서비스 페이지 이동

2. EMR 클러스터 생성

  • cluster name 지정
    • EMR 실행 기록 저장될 폴더: S3 folder
  • Software configuration
    • Apache Spark and Zeppelin 이 포함된 옵션
  • 클러스터 H/W 사양: m5.xlarge * 노드 3개
    • 워커 노드: 4CPU x 2, 16GB x 2
  • Create Cluster 선택
  • Cluster가 Waiting으로 변할 때까지 대기
    • Master Public DNS 주소값을 통해서 SSH 접속

3. 마스터 노드의 포트번호 22번 열기

  • EMR 클러스터 Summary 탭 선택
  • Security groups for Master 링크 선택
  • Security Groups페이지에서 마스터 노드의 Security group ID를 선택
  • Edit inbound rules 버튼 클릭 후 Add rule 버튼 선택
  • 포트번호로 22를 입력, Anywhere IP v4 선택, Save rules 버튼 선택

4. Spark History Server 론치

Spark History Server가 Spark Web UI 입니다. 

 

5. Pyspark 잡 실행

Spark 마스터 노드에 ssh로 로그인하여 spark-submit을 통해 실행

ssh -i [프라이빗키.pem] hadoop@[마스터 호스트 이름]
spark-submit --master yarn [예제프로그램].py