HDInsight Spark 및 Kafka 사용

완료됨

데이터 엔지니어는 솔루션을 빌드하기 위해 만들 가장 적절한 유형의 HDInsight 클러스터를 결정해야 합니다. Spark 및 Kafka 클러스터는 함께 사용할 경우 실시간 또는 거의 실시간으로 데이터 스트림을 수집하고 처리할 수 있습니다.

Kafka를 사용하여 실시간 데이터 수집

Apache Kafka는 메시지 시스템, 게시 구독 시스템 또는 스트리밍 처리 플랫폼으로 사용할 수 있습니다. 이는 실시간으로 읽고, 후처리되고, 여러 소비자가 동시에 읽을 수 있는 로그에 데이터를 저장합니다.

Spark 구조적 스트리밍을 사용하여 실시간 이벤트 처리

Apache Spark는 대규모 데이터를 신속하게 처리, 쿼리, 분석 및 변환하는 여러 환경에서 사용할 수 있는 오픈 소스 분산형 데이터 처리 엔진입니다. Spark는 빅 데이터에 ETL 및 SQL 작업을 수행하고, 스트리밍 데이터 처리 및 기계 학습 수행에 주로 사용됩니다.

Spark 구조적 스트리밍에는 다른 플랫폼에서 사용할 수 없는 기능(예: 내결함성 보증, 일괄 처리 및 스트리밍 데이터를 조인하는 기능, 지연 도착 데이터를 처리하는 기능 등)이 포함되어 있습니다. 이 모듈의 뒷부분에서 자세히 알아보세요. 또한 Azure HDInsight를 사용하여 Spark 및 Kafka 클러스터를 모두 포함하는 VNet을 만들 수 있습니다. 단일 VNet에 두 클러스터를 모두 사용하는 경우 Spark 클러스터는 클러스터나 엔드포인트 간에 통신하는 대신 Kafka 클러스터 내에서 데이터의 개별 파티션에 액세스할 수 있습니다. 데이터의 개별 파티션에 대한 액세스를 제공하여 실시간 처리 작업에 있는 병렬 처리를 늘리면 처리량이 향상됩니다.

Kafka를 Spark와 함께 사용하는 시나리오

Apache Kafka 및 Spark를 사용하는 실시간 스트리밍을 활용한 많은 실시간 분석 시나리오가 있습니다. 이러한 시나리오에는 스트리밍 데이터 수집 구성 요소(Kafka 구성 요소)와 데이터에서 실행되는 분석 프로세스(Spark 구성 요소)가 모두 있습니다.

Spark에서 Kafka를 사용하는 시나리오

  • 금융 거래 데이터를 수집하고 사기성 동작의 기록 패턴과 비교하는 실시간 사기 감지.
  • IoT 디바이스 데이터를 수집하고 주행 거리, 속도, 위치 또는 온도 데이터와 같은 특정 센서 데이터가 임계값에 도달할 때 반응하는 차량 관리 및 연결된 자동차 시나리오.
  • 충동 구매나 클릭률에 영향을 미치는 상품의 페이지 배치를 분석하는 전자 상거래 솔루션에 대한 클릭 동향 분석.
  • 혈압 및 심박수 정보를 관찰하고 환자가 위험 상태일 경우 의사에게 전달하는 실시간 환자 모니터링.
  • 전기 사용을 관찰하고 수요 변화에 대응하는 스마트 그리드 솔루션.
  • 재입고 일정을 잡고 계산대 직원 배치를 조정하기 위해 하루 중 특정 시간에 어떤 구매가 이루어지는지 알아보는 매장 내 고객 행동 시나리오.
  • 서버 가용성 및 대역폭을 감시하고 필요한 경우 트래픽을 다시 라우팅하는 IT 인프라 및 네트워크 모니터링.
  • 낮은 재고 수준을 확인하고 해당 품목의 신속한 재주문 또는 재입고를 확인하는 실시간 수요 및 재고 관리.

일괄 처리에서 스트리밍으로 간편한 마이그레이션

대부분의 경우 이러한 시나리오는 온-프레미스로 시작하거나 데이터 일괄 처리를 사용하여 시작되지만, 솔루션 개발 및 요구 사항이 발전함에 따라 일괄 처리는 스트리밍으로, 온-프레미스 애플리케이션은 클라우드로 전환됩니다. 위에서 설명한 것처럼 Spark 구조적 스트리밍은 일괄 처리 및 스트리밍 작업을 모두 처리하는 고유한 기능으로 동일한 애플리케이션 및 프레임워크를 사용하여 한 작업에서 다른 작업으로 전환하거나 동시에 사용할 수 있어 어떤 일괄 처리든 실시간 작업으로 간편하게 전환할 수 있습니다.