⭐ Plogramming/BigData

Chpater 6. 클러스터에서 애플리케이션 실행하기 - 스파크 프레임워크

김진한

1. 스파크 프레임워크

  • 오픈 소스 프로세싱 프레임워크
  • 일반 서버를 사용해 대용량 데이터 처리 및 분석(맵리듀스)
  • 하둡 클러스터에서 스파크와 맵리듀스는 병행해서 사용 가능 -> 맵리듀스는 배치 프로세싱 담당/스파크는 반복 처리 담당
  • 얀으로 2개 프로세싱 프레임워크 관리 및 맵리듀스를 실행하는 노드에서 스파크를 실행할 수 있음
  • 맵리듀스와의 차이점
    • 데이터 스토리지로 메모리 사용 -> 애플리케이션이 동작하는 동안 계산과 데이터 스토리지를 위해 메모리를 사용(맵리듀스는 계산하는 데 메모리 사용)
    • 잡을 여러 단계가 있는 DAG로 변환시킴 -> DAG가 복잡할 수록 실행 능력이 더 좋음
    • 잡을 두 단계로 제한하지 않음 -> 여러 잡들로 나누고 여러 단계로 나눠 실행 가능(최적화 가능)
    • 스파크 인메모리 계산: 디스크에서 데이터를 한 번만 읽어옴 -> 캐시에 저장
    • 간결한 코드
    • 다목적 프레임워크
      • 배치 프로세싱
      • 상호 분석/ 인터렉티브 분석
      • 스트림 프로세싱
      • 머신 러닝
      • 그래프 컴퓨팅

2. 스파크 스택

3. 스파크 실행 모드

  • 로컬 모드
    • 단일 서버 사용 -> 비분산형
    • 테스트 모드
  • 클러스터 모드
    • 독립형 클러스터
      • 전용 클러스터
      • 테스트 모드
    • 메소스: 카프카와 ES 같은 다른 애플리케이션을 지원
    • 하둡 얀: 다른 프레임워크가 함께 실행될 수 있음
      • 워커 노드에 리소스 매니저, 노드매니저가 스파크 애플리케이션 프로세스들을 관리
      • 장점
        • 모든 애플리케이션이 동일한 클러스터 리소스 풀을 공유
        • 스케줄러를 사용해 작업 부담을 나누고 우선순위를 매길 수 있음
        • 익스큐터 수 설정 가능
        • 커버로스를 활성화시켜 프로세스 사이에 인증을 강화