Azure HDInsight on AKS에서 Apache Flink®란? (미리 보기)

Important

이 기능은 현지 미리 보기로 제공됩니다. Microsoft Azure 미리 보기에 대한 보충 사용 약관에는 베타 또는 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 더 많은 약관이 포함되어 있습니다. 이 특정 미리 보기에 대한 자세한 내용은 Azure HDInsight on AKS 미리 보기 정보를 참조하세요. 질문이나 기능 제안이 있는 경우 세부 정보와 함께 AskHDInsight에 요청을 제출하고 Azure HDInsight 커뮤니티에서 추가 업데이트를 보려면 팔로우하세요.

Apache Flink는 바인딩되지 않은 데이터 스트림과 바인딩된 데이터 스트림에 대한 상태 저장 계산을 위한 프레임워크이자 분산 처리 엔진입니다. Flink는 모든 일반적인 클러스터 환경에서 실행되고, 메모리 내 속도와 규모에 관계없이 계산 및 상태 저장 스트리밍 애플리케이션을 수행하도록 설계되었습니다. 애플리케이션은 클러스터에서 배포되고 동시에 실행되는 수천 개의 작업으로 병렬 처리됩니다. 따라서 애플리케이션은 무제한의 vCPU, 주 메모리, 디스크, 네트워크 IO를 사용할 수 있습니다. 또한 Flink는 대규모 애플리케이션 상태를 쉽게 유지 관리합니다. 비동기 및 증분 검사점 알고리즘은 정확히 한 번 상태 일관성을 보장하면서 처리 대기 시간에 미치는 영향을 최소화합니다.

Apache Flink는 대규모로 스케일링 가능한 스트림 처리를 위한 분석 엔진입니다.

Flink가 제공하는 주요 기능은 다음과 같습니다.

  • 바인딩된 스트림 및 바인딩되지 않은 스트림에 대한 작업
  • 메모리 내 성능
  • 스트리밍 및 일괄 처리 계산 모두를 위한 기능
  • 짧은 대기 시간, 높은 처리량 작업
  • 정확히 한 번 처리
  • 고가용성
  • 상태 및 내결함성
  • Hadoop 에코시스템과 완벽하게 호환
  • 스트림 및 일괄 처리 모두를 위한 통합 SQL API

Flink 아키텍처 다이어그램.

Apache Flink는 광범위한 기능 집합으로 인해 다양한 유형의 애플리케이션을 개발하고 실행하는 데 탁월한 선택입니다. Flink의 기능에는 스트림 및 일괄 처리, 정교한 상태 관리, 이벤트 시간 처리 의미 체계, 정확히 한 번 상태에 대한 일관성 보장에 대한 지원이 포함됩니다. Flink에는 단일 실패 지점이 없습니다. Flink는 수천 개의 코어와 테라바이트 규모의 애플리케이션 상태로 스케일링되고, 높은 처리량과 짧은 대기 시간을 제공하며, 세계에서 가장 까다로운 스트림 처리 애플리케이션의 일부를 구동하는 것으로 입증되었습니다.

  • 사기 감지: Flink를 사용하여 스트리밍 데이터에 복잡한 규칙 및 기계 학습 모델을 적용하여 사기성 트랜잭션 또는 활동을 실시간으로 검색할 수 있습니다.
  • 이상 탐지: Flink를 사용하여 센서 판독값, 네트워크 트래픽 또는 사용자 동작과 같은 스트리밍 데이터의 이상값 또는 비정상적인 패턴을 식별할 수 있습니다.
  • 규칙 기반 경고: Flink를 사용하여 온도, 압력 또는 주가와 같은 스트리밍 데이터의 미리 정의된 조건 또는 임계값에 따라 경고 또는 알림을 트리거할 수 있습니다.
  • 비즈니스 프로세스 모니터링: Flink를 사용하여 주문 처리, 배달 또는 고객 서비스와 같은 비즈니스 프로세스 또는 워크플로의 상태 및 성능을 실시간으로 추적하고 분석할 수 있습니다.
  • 웹 애플리케이션(소셜 네트워크): Flink를 사용하여 메시지, 좋아요, 메모 또는 권장 사항과 같은 사용자 생성 데이터를 실시간으로 처리해야 하는 웹 애플리케이션을 구동할 수 있습니다.

Apache Flink 사용 사례에 설명된 일반적인 사용 사례에 대해 자세히 알아보기

HDInsight on AKS에 있는 Apache Flink 클러스터는 완전 관리형 서비스입니다. HDInsight on AKS에서 Flink 클러스터를 만들 때의 이점은 다음과 같습니다.

기능 설명
쉽게 만들기 Azure Portal, Azure PowerShell 또는 SDK를 사용하여 몇 분 만에 HDInsight에서 새 Flink 클러스터를 만들 수 있습니다. HDInsight on AKS에서 Apache Flink 클러스터 시작 참조
사용이 용이함 HDInsight on AKS에 있는 Flink 클러스터에는 포털 기반 구성 관리 및 스케일링이 포함됩니다. 작업 관리 API를 사용하는 것 외에도 작업 관리를 위해 REST API 또는 Azure 포털을 사용합니다.
REST API HDInsight on AKS에 있는 Flink 클러스터에는 Azure Portal에서 작업을 원격으로 제출하고 모니터링하기 위한 REST API 기반 Flink 작업 제출 방법인 작업 관리 API가 포함되어 있습니다.
배포 유형 Flink는 세션 모드 또는 애플리케이션 모드에서 애플리케이션을 실행할 수 있습니다. 현재 HDInsight on AKS는 세션 클러스터만 지원합니다. 세션 클러스터에서 여러 Flink 작업을 실행할 수 있습니다. 앱 모드가 HDInsight on AKS 클러스터를 위한 로드맵에 있습니다.
메타스토어 지원 HDInsight on AKS의 Flink 클러스터는 Azure Data Lake Storage Gen2에 대한 원격 검사점이 있는 다양한 개방형 파일 형식의 Hive 메타스토어가 포함된 카탈로그를 지원할 수 있습니다.
Azure Storage 지원 HDInsight의 Flink 클러스터는 Azure Data Lake Storage Gen2를 파일 싱크로 사용할 수 있습니다. Data Lake Storage Gen2에 대한 자세한 내용은 Azure Data Lake Storage Gen2를 참조하세요.
Azure 서비스와의 통합 HDInsight on AKS의 Flink 클러스터는 Azure Event HubsAzure HDInsight와 함께 Kafka에 통합되어 제공됩니다. Event Hubs를 사용하여 스트리밍 애플리케이션을 빌드할 수 있습니다.
적응성 HDInsight on AKS를 사용하면 자동스케일링 기능을 사용하여 일정에 따라 Flink 클러스터 노드를 스케일링할 수 있습니다. Azure HDInsight on AKS 클러스터 자동 스케일링을 참조하세요.
상태 백 엔드 HDInsight on AKS는 RocksDB를 기본 StateBackend로 사용합니다. RocksDB는 빠른 스토리지를 위한 포함 가능한 영구 키-값 저장소입니다.
검사점 검사점은 기본적으로 HDInsight on AKS 클러스터에서 사용하도록 설정됩니다. HDInsight on AKS에 대한 기본 설정은 영구 스토리지의 마지막 5개 검사점을 유지 관리합니다. 작업이 실패하는 경우 최신 검사점에서 작업을 다시 시작할 수 있습니다.
증분 검사점 RocksDB는 증분 검사점을 지원합니다. 대규모 상태에는 증분 검사점을 사용하는 것이 좋습니다. 이 기능은 수동으로 사용하도록 설정해야 합니다. flink-conf.yaml: state.backend.incremental: true에 기본값을 설정하면 애플리케이션이 코드에서 이 설정을 재정의하지 않는 한 증분 검사점을 사용합니다. 이 문은 기본적으로 True입니다. 또는 코드 EmbeddedRocksDBStateBackend` backend = new `EmbeddedRocksDBStateBackend(true);에서 이 값을 직접 구성할 수도 있습니다(구성 기본값을 재정의함). 기본적으로 구성된 검사점 디렉터리에 마지막 5개의 검사점이 보존됩니다. 이 값은 구성 관리 섹션 state.checkpoints.num-retained: 5에서 구성을 변경하여 변경할 수 있습니다.

HDInsight on AKS의 Apache Flink 클러스터에는 다음 구성 요소가 포함되며, 기본적으로 클러스터에서 사용할 수 있습니다.

출시 예정 로드맵을 참조하세요.

Flink는 리더-팔로워 패턴으로 설정된 작업 관리자, 작업 관리자, 작업 클라이언트의 세 가지 분산 구성 요소를 사용하여 작업을 예약합니다.

Flink 작업: Flink 작업 또는 프로그램은 여러 작업으로 구성됩니다. 작업은 Flink의 기본 실행 단위입니다. 각 Flink 작업에는 병렬 처리 수준에 따라 여러 인스턴스가 있으며 각 인스턴스는 TaskManager에서 실행됩니다.

작업 관리자: 작업 관리자는 스케줄러 역할을 하며 작업 관리자에서 작업을 예약합니다.

작업 관리자: 작업 관리자는 작업을 병렬로 실행하기 위해 하나 이상의 슬롯을 제공합니다.

작업 클라이언트: 작업 클라이언트는 작업 관리자와 통신하여 Flink 작업을 제출합니다.

Flink 웹 UI: Flink는 실행 중인 애플리케이션을 검사, 모니터링, 디버그하는 웹 UI를 제공합니다.

작업, 작업 관리자, 태스크 관리자 및 작업 클라이언트가 함께 작동하는 방식을 보여 주는 Flink 프로세스 다이어그램.

참조