Skip to main content
이 문서는 컴퓨트 섹션의 일부입니다.

클러스터란?

💡 클러스터(Cluster) 란 Spark 코드를 실행하기 위한 컴퓨팅 리소스의 집합 입니다. 하나의 Driver 노드와 0개 이상의 Worker 노드로 구성됩니다.
Databricks에서 노트북의 코드를 실행하거나 ETL 작업을 수행하려면 반드시 클러스터가 필요합니다. 어떤 종류의 클러스터를 선택하느냐에 따라 비용, 성능, 관리 방식이 달라집니다.

클러스터 종류 비교

Databricks는 세 가지 유형의 클러스터를 제공합니다.
클러스터 유형용도특징
All-Purpose Cluster (대화형)노트북에서 코드 실행, 데이터 탐색수동 생성, 공유 가능
Job Cluster (작업 전용)스케줄된 ETL/배치 작업Job이 자동 생성/삭제
SQL WarehouseSQL 쿼리 전용SQL/BI 도구에 최적화
비교 항목All-Purpose ClusterJob ClusterServerless
용도대화형 개발, 탐색예약된 작업 실행노트북, SQL, Jobs
생성 방식사용자가 수동 생성Job 실행 시 자동 생성자동 관리
수명수동 종료 또는 자동 종료작업 완료 후 자동 종료유휴 시 자동 해제
시작 시간3~5분3~5분수 초
비용실행 중 계속 과금작업 시간만 과금사용량(처리량) 기준
공유여러 사용자가 공유 가능하나의 작업 전용사용자별 격리
설정 자유도높음 (노드 타입, 라이브러리 등)높음낮음 (자동 관리)

All-Purpose Cluster (대화형 클러스터)

언제 사용하나요?

  • 노트북에서 코드를 작성하고 대화형으로 결과를 확인 할 때
  • 데이터를 탐색하고 분석하는 개발 단계 에서
  • 여러 팀원이 하나의 클러스터를 공유하여 협업 할 때

특징

항목설명
생성사용자가 Compute 메뉴에서 직접 생성합니다
종료수동으로 종료하거나, 일정 시간 유휴 후 자동 종료됩니다
공유여러 노트북이 동시에 연결될 수 있습니다
재시작종료 후 재시작하면 기존 설정이 유지됩니다
비용 주의사용하지 않아도 실행 중이면 과금됩니다. 자동 종료 설정이 중요합니다
# All-Purpose 클러스터에서 대화형 작업 예시
df = spark.read.table("catalog.schema.sales")
display(df.describe())  # 데이터 탐색

Job Cluster (작업용 클러스터)

언제 사용하나요?

  • 스케줄된 ETL 파이프라인 을 실행할 때
  • 프로덕션 워크로드 를 안정적으로 운영할 때
  • 비용을 최소화하면서 일회성 배치 작업 을 실행할 때

특징

항목설명
생성Job(작업)이 시작될 때 자동으로 생성됩니다
종료작업이 완료되면 자동으로 종료되고 삭제됩니다
격리각 작업이 전용 클러스터에서 실행되어, 다른 작업과 리소스를 공유하지 않습니다
비용실제 작업 시간에 대해서만 과금되어 비용 효율적입니다
# Job 설정 예시 (Databricks Asset Bundle)
resources:
  jobs:
    daily_etl:
      name: "daily-sales-etl"
      tasks:
        - task_key: "process_sales"
          job_cluster_key: "etl_cluster"
          notebook_task:
            notebook_path: "/Workspace/etl/process_sales"
      job_clusters:
        - job_cluster_key: "etl_cluster"
          new_cluster:
            spark_version: "18.1.x-scala2.12"
            num_workers: 4
            node_type_id: "i3.xlarge"