스트리밍 데이터 처리에서 Apache Flink의 중요성

작가: Roger Morrison
창조 날짜: 19 구월 2021
업데이트 날짜: 10 할 수있다 2024
Anonim
스트리밍 개념 및 Flink 시리즈 소개-스트림 처리 및 Apache Flink 란?
동영상: 스트리밍 개념 및 Flink 시리즈 소개-스트림 처리 및 Apache Flink 란?

콘텐츠


출처 : Madmaxer / Dreamstime.com

테이크 아웃 :

Apache Flink는 배치 데이터와 스트리밍 데이터를 모두 처리 할 수있는 데이터 처리 도구로, 사용자에게 유연성과 다양성을 제공합니다.

스트리밍 데이터 처리는 새로운 분야입니다. 데이터가 생성 될 때 데이터를 거의 즉시 (대기 시간이 매우 짧음) 처리하는 것을 의미합니다. 지금까지 대부분의 데이터 처리는 처리, 분석 및 의사 결정이 지연된 배치 시스템을 기반으로했습니다. 이제 새로운 기술과 플랫폼이 발전함에 따라 조직은 기존 배치 기반 시스템이 아닌 스트림 기반 접근 방식으로 점차 이동하고 있습니다. Apache Flink는 스트리밍 데이터 처리를위한 오픈 소스 프로젝트입니다. 조직이 실시간 분석을 수행하고시기 적절한 결정을 내릴 수 있도록 도와줍니다.

Apache Flink 란 무엇입니까?

Apache Flink는 분산 스트림 및 배치 데이터 처리를 수행 할 수있는 오픈 소스 플랫폼으로 정의 할 수 있습니다. Apache Flink의 핵심은 스트리밍 데이터 흐름 엔진으로, 분산 스트림 데이터 처리를위한 통신, 배포 및 내결함성을 지원합니다. Apache Flink는 배치 및 스트림 처리를 모두 지원하는 유일한 하이브리드 플랫폼입니다. 실시간 처리, 기계 학습 프로젝트, 배치 처리, 그래프 분석 등을 기반으로 다양한 사용 사례를 지원합니다.

Flink는 실제 응용 프로그램을 생성하고 기계 학습 및 그래프 처리 기능을 지원하기 위해 다음과 같은 구성 요소로 구성됩니다.

  • DataSet API — Python, Scala 및 Java에 포함 된 정적 데이터를 도와줍니다
  • DataStream API — Python, Java 및 Scala에서 무제한 스트림 지원
  • Table API — 스칼라와 자바에서 사용할 수있는 SQL과 같은 언어

Apache Flinks 기본 원칙

Apache Flink가 구축되는 기본 원칙을 살펴 보겠습니다.


  1. 배치를 포함하여 모든 것을 스트림으로 고려하십시오. 따라서 기본 개념과 실행에 따라 스트림이 항상 존재합니다.
  2. 응용 프로그램을 프로그래밍 언어로 작성한 다음 데이터베이스로 실행하십시오.
  3. 수동 튜닝 제거, 물리적 실행 개념 제거 등과 같은 사용자 친화적 인 기능에 중점을 둡니다.
  4. 솔루션을 구현하기 위해 최소 구성을 허용하십시오.
  5. 다른 파일 시스템 및 배포를 지원합니다.
  6. 레거시 빅 데이터 애플리케이션과 통합하십시오.
  7. 배치, 실시간 스트림, 기계 학습, 그래프 처리 등의 기본 지원

Apache Flink가 다른 이유

Apache Flink는 스트림 및 배치 데이터 처리를위한 오픈 소스 플랫폼입니다. 다른 유사한 플랫폼과 비교하여 다음과 같은 기능이 있습니다.

  • 고성능 및 짧은 대기 시간 — Apache Flink의 런타임 환경은 높은 처리량과 매우 짧은 대기 시간을 제공합니다. 최소한의 구성 변경만으로도 가능합니다.
  • 사용자 지정 상태 유지 관리 — 스트림 처리 시스템은 항상 계산 상태를 유지합니다. Flink에는 계산 중에 상태를 적용하는 매우 효율적인 검사 포인팅 메커니즘이 있습니다.
  • 흐름 제어 — 흐름 제어는 모든 스트림 처리 시스템에서 없어서는 안될 부분입니다. Flink에는 자연스러운 유량 제어 시스템이 내장되어 있습니다. 장기간 작동하는 작업자의 효율적인 유량 제어에 도움이됩니다.
  • 내결함성 — Flink에는 분산 스냅 샷을 기반으로하는 효율적인 내결함성 메커니즘이 있습니다. 이 메커니즘은 강력한 일관성과 높은 처리량으로 매우 가볍습니다.
  • 단일 런타임 — Apache Flink는 스트림 및 일괄 처리를위한 단일 런타임 환경을 제공합니다. 따라서 동일한 런타임 시스템 구현으로 모든 유형의 애플리케이션을 포괄 할 수 있습니다.
  • 효율적인 메모리 관리 — Apache Flink는 JVM 내부에 자체 메모리 관리 시스템을 갖추고 있습니다. 따라서 애플리케이션 확장 성은 오버 헤드를 줄이면서 주 메모리를 넘어서 쉽게 처리 할 수 ​​있습니다.
  • 반복 계산 — Flink는 그래프 처리 및 기계 학습과 같은 반복 계산을위한 내장 된 전용 지원을 제공합니다.
  • 프로그램 최적화 — Flink에는 복잡한 작업을 자동으로 최적화 할 수있는 최적화 기능이 내장되어 있습니다.

Apache Flink에는 두 가지 도메인 별 라이브러리도 있습니다.


  • FlinkML — 기계 학습 프로젝트에 사용됩니다.
  • Gelly — 그래프 처리 프로젝트에 사용됩니다.

Apache Flink Hadoop은 종속적입니까?

실시간 데이터 분석은 스트리밍 데이터 (생성시 지속적으로 흐르는)를 기반으로 수행됩니다. Apache Flink는 Hadoops MapReduce 구성 요소의 대안 인 데이터 처리 시스템입니다. 자체 런타임이 있으며 Hadoop 에코 시스템과 독립적으로 작동 할 수 있습니다. Flink는 Hadoop 설치없이 실행될 수 있지만 HDFS (Hadoop Distributed File System)에 저장된 데이터를 처리 할 수 ​​있습니다. Flink에는 HDFS를위한 내장 지원 라이브러리가 있으므로 대부분의 Hadoop 사용자는 HDFS와 함께 Flink를 사용할 수 있습니다. Flink는 Hadoops의 차세대 리소스 관리자 인 YARN (Yet Another Resource Negotiator)에도 액세스 할 수 있습니다. Flink는 기본적으로 Hadoop 지원 라이브러리를 번들로 제공합니다. YARN에 대한 자세한 내용은 YARN (Hadoop 2.0) 프레임 워크의 장점은 무엇입니까?를 참조하십시오.

따라서 Apache Flink는 자체 런타임과 함께 별도의 시스템이지만 데이터 저장 및 스트림 처리를 위해 Hadoop과 통합 될 수도 있습니다.

버그 없음, 스트레스 없음-인생을 파괴하지 않고 인생을 바꾸는 소프트웨어를 만드는 단계별 가이드

아무도 소프트웨어 품질에 신경 쓰지 않으면 프로그래밍 기술을 향상시킬 수 없습니다.

하둡 맵리 듀스의 대안

Apache Flink는 Hadoop MapReduce의 대안으로 간주됩니다. Flink는 MapReduce에서 누락 된 흐름 인 순환 데이터를 제공합니다. Flink는 MapReduce API에 비해 구현하기 쉬운 API를 제공합니다. 인 메모리 처리를 지원하므로 훨씬 빠릅니다. Flink는 HDFS와 함께 다른 파일 시스템과도 작동 할 수 있습니다. Flink는 그래프 처리 및 기계 학습 알고리즘을 사용하여 실시간 스트림 데이터를 분석 할 수 있습니다. 또한 join, cross 및 union과 같은 새로운 연산자로 MapReduce 모델을 확장합니다. Flink는 짧은 대기 시간, 정확히 하나의 처리 보증 및 높은 처리량을 제공합니다. Flink는 Spark and Storm의 대안으로 간주됩니다. Spark에 대한 자세한 내용은 Apache Spark가 신속한 응용 프로그램 개발을 돕는 방법을 참조하십시오.

Apache Flinks 도구 란 무엇입니까?

Apache Flink에는 다음과 같은 유용한 도구가 있습니다.

  • CLI (명령 줄 인터페이스) — 명령 프롬프트에서 직접 Flinks 유틸리티를 작동하기위한 명령 줄 인터페이스입니다.
  • 작업 관리자 — 작업, 상태, 실패 등을 추적하기위한 관리 인터페이스입니다.
  • 작업 클라이언트 — 기본적으로 작업을 제출, 실행, 디버그 및 검사하기위한 클라이언트 인터페이스입니다.
  • Zeppelin — 시각화 도구 및 분석 기능과 함께 대화 형 웹 기반 계산 플랫폼입니다.
  • 대화식 스칼라 셸 / REPL — 대화식 쿼리에 사용됩니다.

4 세대 빅 데이터 분석 플랫폼

Apache Flink는 4 세대 빅 데이터 분석 프레임 워크로 알려져 있습니다. 1 세대 분석 엔진은 배치 및 MapReduce 작업을 처리합니다. 2 세대 엔진은 배치 및 대화식 처리를 관리합니다. 세 번째는 거의 실시간 및 반복 처리와 함께 기존 처리를 처리하므로 조금 더 고급입니다. 이제 4 세대 프레임 워크 인 최신 프레임 워크가 제공되며, 기존 프로세스와 함께 실시간 스트리밍 및 기본 반복 처리를 처리합니다.

결론

Apache Flink는 스트림 처리 분석 세계의 새로운 참가자입니다. 여전히 새로운 플랫폼으로 부상하고 있으며 새로운 기능으로 개선되고 있습니다. 앞으로 몇 년 안에 훨씬 더 효율적이 될 것입니다. Hadoop 및 MapReduce 모델의 다른 기능과 비교되지만 실제로는 향상된 기능으로 스트림 데이터 처리를위한 병렬 플랫폼입니다. 시간이 지나면 분석 세계에서 더 많은 수용을 얻고이를 사용하는 조직에 더 나은 통찰력을 제공 할 것입니다.