Apache Flink
•
스트리밍 데이터를 분석 병렬 처리 분석 가능한 오픈소스 데이터 프레임워크
Apache Flink 선택 이유
1.
큰 규모 State 저장
2.
주기적인 CheckPoint
3.
State 일관성 보장
4.
Exactly Once
Apache Flink 배포방법
1.
YARN
2.
Apache Mesos
3.
Kubernetes
4.
Kinesis Data Anayltcis
Kubernetes에서 Apache Flink 실행
1.
EKS에서 배포한 Flink Cluster의 Job Manager와 Task Manager 관리가 있습니다.
•
Job Manager는 사용자가 정의한 Job을 Task로 나누어 이를 Task Manager Node들에게 분배하고 Job 스케줄을 관리하는 Master 역할을 합니다.
•
Task Manager는 실제 Task를 수행하며 Task를 병렬 처리하는 다수의 Node로 구성됩니다.
2.
Cluster의 Metrics와 Log를 수집 및 분석 관리 갖추어야 합니다.
3.
CheckPoint와 SnapShot을 안정성이 높은 별도의 저장소에 저장해야합니다.
4.
Cluster의 가용성을 위해 Master의 역할인 Job Manager의 상태 모니터링 및 자동 복구 체계를 갖추어야 합니다.
5.
요구되는 규모에 따라 Task Manager가 유연하게 AutoScaling되어야 합니다.
6.
Flink Web Dashboard를 활용할 수 있도록 Interface 구축이 필요합니다.
•
Flink Dashboard는 Task와 Job Manager와 내부동작과 상태를 모니터링할 수 있어야하며, 성능과 장애분석을 위한 필수 컴포넌스 입니다.
Flink 상태저장 이벤트와 스트리밍 처리
Source : 분석할 데이터를 정의합니다.
Transfromation : 데이터를 변환합니다.
Sink : 변환할 데이터들의 저장될 위치를 정의합니다.
각 단계를 Task라고 정의합니다.











