클러스터란?
- 서로 연결된 여러개의 컴퓨터(노드)를 한개의 목표를 가지고 프로세스를 하는 것
- 분산 시스템에서 가장 유명한 아파치 스파크에서는 가장 중요한 backbone같은 역할, 태스크를 받으면 작게 나눈 다음에 수행 후 결과를 한꺼번에 모은 후 사용자에게 보여줌
클러스터 종류
- On-Preminss
- 회사가 직접적으로 가지고 있는 물리적 서버를 가지고 만든 클러스터
- 직접적으로 유지해야하는 단점
- Cloud-Based Cluster
- 클라우드에서 가상 클러스터로 사용할때만 비용 지불
- Hybrid Cluster
- 몇개 클러스터는 온프레미스로, 몇개의 클러스터는 트래픽이 올때마다 퍼블릭 클라우드로 노드를 가상으로 받음
클러스터를 이용하는 이유
- Improved Performance
- 큰 데이터를 평행 프로세싱을 하기 때문에 수행 시간이 짧다
- Cost Effiecieny
- 기본 PC는 하드웨어를 사용하기 때문에 슈퍼컴퓨터보다 저렴하다
- Scalability
- 데이터가 많아질수록 노드를 사용할수록 수평 노드를 많이 사용해서 처리하기 쉬움
- Fault Tolenrance
- 잘못될 경우 다른 노드가 자동으로 대체로 수행

클러스터의 중요 요소들
- Master Node
- 작업을 접수하면, 워커 노드에 임대
- 업무를 관리, 리소스 할당, 작업 스케줄
- Worker Node=Slave Node
- 마스터 노드에서 업무를 받고 업무 수행
- 각 노드에는 노드 매니저가 존재 = 노드를 모니터링하는 프로세스
- Cluster Manager
- 전체적인 클러스터를 계속 모니터링하고 리소스를 잘 분배하는 역할

워커노드내의 요소들
- Pyspark를 시작하는 Driver가 존재 → 이게 JVM을 생성
- PySpark와 JVM 커뮤티케이션을 할 때는 Py4J 라이브러리를 이용
- JVM이 또 다른 JVM을 생성
- JVM안에서 데이터를 프로세스
- Python Worker가 존재
- PySpark를 사용하기 때문에 Python Worker가 Python 라이브러리를 가지고 있다가 JVM이 사용할 때 라이브러리에 대한 정보를 줌
- python이 새로운 라이브러리를 사용하려면 각각의 노드에 install되어있어야함. 그래서 JVM이 참조할 수 있게 Python Worker가 존재
'IT 정리 > 아파치 스파크' 카테고리의 다른 글
| Spark 기초(1) (0) | 2026.05.01 |
|---|---|
| Spark 환경 설정 (0) | 2026.04.30 |
| Apache Spark 설치(window), jupyter 접속 (0) | 2026.04.30 |
| RDD, Docker 소개 (0) | 2026.04.30 |
| 아파치 스파크 소개 (0) | 2026.04.30 |