- [스파크 완벽 가이드] 17장 - 스파크 배포 환경2024년 10월 16일
- 31514
- 작성자
- 2024.10.16.:50
클러스터 환경
온프레미스 클러스터
<장점>
- 사용 중인 하드웨어를 완전히 제어할 수 있어서 특정 워크로드의 성능을 최적화할 수 있다.
<단점>
- 클러스터의 크기가 제한적이다.
- 클러스터는 하둡 파일 시스템이나 분산 키-값 저장소 같은 자체 저장소 시스템을 선택하고 운영해야 한다.
온프레미스 클러스터를 사용한다면 자원 활용 문제를 해결할 수 있는 클러스터 매니저를 사용하는 것이 좋다.
클라우드 배포
<장점>
- 자원을 탄력적으로 늘이고 줄이는 것이 가능하다.
- 클라우드 환경은 비용이 저렴하고 복제 기능을 지원하는 저장소를 제공하기 때문에 대규모 데이터를 쉽게 관리할 수 있다.
클러스터 매니저
스탠드얼론 모드
아파치 스파크 워크로드용으로 특별히 제작된 경량화 플랫폼이다.
하둡 YARN
하둡 YARN은 잡 스케줄링과 클러스터 자원 관리용 프레임워크다.
spark-submit 명령의 --master 인수를 yarn으로 지정하여 실행할 수 있다.
두 가지 배포 모드가 있다.
- cluster 모드 - YARN 클러스터에서 스파크 드라이버 프로세스를 관리하며 클라이언트는 애플리케이션을 생성한 다음 즉시 종료된다.
- client 모드 - 드라이버가 클라이언트 프로세스에서 실행된다.
MESOS
메소스는 스파크에서 지원하는 클러스터 매니저 중 가장 무겁고 좋다.
대규모의 메소스 배포 환경이 있는 경우에만 사용하는 것이 좋다.
한 가지 모드로 스파크를 실행할 수 있다.
- coarse-grained : 스파크 익스큐터를 단일 메소스 태스크로 실행한다.
기타 고려사항
<애플리케이션 개수와 유형>
- YARN은 HDFS의 정보를 사용하도록 설계되어 있고, 클라우드 환경을 제대로 지원하지 못한다.
- 클러스터를 확장할 때 연산용 클러스터와 저장소 클러스터를 동시에 확장해야 한다.
- 메소스는 YARN이 가진 개념을 조금 더 개선하였으며 다양한 애플리케이션 유형을 지원하지만, 큰 규모의 클러스터에 적합하다.
- 스탠드얼론 클러스터는 가장 가볍고 이해와 활용이 쉽다.
<스파크 버전 관리>
다양한 스파크 버전으로 된 여러 애플리케이션을 실행하려면 버전별 설정 스크립트를 관리하는 데 많은 시간을 할애해야 한다.
아니면 다양한 버전의 스파크 애플리케이션을 실행할 수 없도록 제한을 걸어야 한다.
<로그 기록>
YARN과 메소스는 로그 기록 기능을 기본으로 제공하지만, 스탠드얼론 모드를 사용하는 경우라면 약간의 수정이 필요하다.
<메타데이터>
아파치 하이브 메타스토어를 사용하면 같은 데이터셋을 참조하는 여러 애플리케이션의 생산성을 높일 수 있다.
<외부 셔플 서비스>
일반적으로 스파크는 셔플 결과를 특정 노드의 로컬 디스크에 저장한다.
외부 셔플 서비스를 이용하면 모든 익스큐터가 외부 셔플 서비스에 결과를 저장한다.
따라서 익스큐터를 임의로 제거해도 다른 애플리케이션에서 셔플 결과를 사용할 수 있다.
<모니터링 솔루션>
클러스터에서 실행되는 스파크 잡을 디버깅하려면 최소환 기본적인 모니터링 솔루션이 필요하다.
'Book > 스파크 완벽 가이드' 카테고리의 다른 글
[스파크 완벽 가이드] 15장 - 스파크 애플리케이션의 생애주기 (0) 2024.10.21 [스파크 완벽 가이드] 18장 - 모니터링 (0) 2024.10.17 [스파크 완벽 가이드] 9장 - 데이터소스 (0) 2024.10.15 [스파크 완벽 가이드] Spark 성능 튜닝 가이드 (1) 2024.10.14 [스파크 완벽 가이드] 스파크 간단히 살펴보기 (0) 2024.10.14 다음글이전글이전 글이 없습니다.댓글