JUST WRITE

What is Nifi 본문

Data

What is Nifi

천재보단범재 2022. 11. 21. 23:32

What is Nifi

What is Nifi

Open Source로 Data flow를 관리할 수 있는 Tool이다.

Nifi는 Niagra Files의 준말로 NSA(National Security Agency)에서 개발하였다.

Top-level Apache Project로 Hortonworks에서 지원하고 있다.

Bigdata platform에서 분석 시 다양한 Datasource에서 데이터 통합 및 처리가 필요하다.

ERP, CRM, 파일, Application, IoT 등 다양한 소스에서 데이터 처리가 필요하다.

다양한 소스에서 나오는 Bigdata를 분산 환경에서 처리할 수 있게 도와주는 강력한 Tool이다.

특징

  • Web UI에서 Data Flow를 수정할 수 있고 Monitoring 가능
  • Data 유실없이 Data 전송 가능
  • Low latency와 높은 처리량으로 실시간 처리 가능
  • 분산 처리 환경 지원
  • Custom process 생성 가능
  • SSL, SSH, HTTPS 등 보안 기능 제공

Architecture

Nifi Archithecture

Nifi는 Java로 개발되었기 때문에 JVM 환경에서 동작한다.

주요 Component들을 소개한다.

Web Server

HTTP Base 명령어와 API를 제공한다.

Flow Controller

Nifi에서 뇌와 같은 중추적인 역할을 한다.

Scheduler로써 Nifi 내 process가 사용할 Thread와 자원을 할당한다.

Flow File Repository

기본적으로 WAL(Write-ahead Logging)으로 Flow file의 속성과 상태값을 저장한다.

Content Repository

Flow file의 실제 Data를 Block 단위로 저장한다.

하나 이상의 파일 시스템에 분산해서 저장할 수 있다.

Provenance Repository

Flow file을 처리할 때마다 생기는 event에 대해서 저장한다.

하나 이상의 파일 시스템에 분산해서 저장할 수 있다.

Nifi Cluster

Nifi는 Cluster를 구성할 수 있다.

Cluster 각 node들은 같은 process를 처리하며 대신 데이터를 다른 set를 처리한다.

Zookeeper가 Node들 중 Coordinator를 지정한다.

모든 Node들은 Coordinator로 선정한 Node에게 Heatbeat를 통해 상태를 보고한다.

Core Concept

FlowFile

Nifi의 기본 단위로 Key-value형태의 속성과 Content로 구성된다.

Nifi Processor에서 처리된다.

FlowFile은 Flowfile Repository인 Disk에 저장되거나 HashMap 형태로 Memory에 저장되기도 한다.

Processor가 ProcessSession에서 Flowfile을 처리할 때는 Memory에 있는 경우이다.

Flowfile Processor

Nifi에서 실제 Data 처리 작업을 진행한다.

해당 작업의 Flowfile의 권한을 가지고 있어 추가, 변경이 가능하다.

Connection

Processor간 연결을 하며 Flowfile을 전달한다.

Queue 역할을 하며 동적으로 우선순위를 제어할 수 있다.

뿐만 아니라 제한을 두거나 모니터링도 가능하다.

 

[참고 사이트]

 

728x90
반응형

'Data' 카테고리의 다른 글

GlusterFS 설치  (0) 2023.02.26
AWS EC2 Nifi 설치  (0) 2022.11.23
What is MinIO?  (0) 2022.10.20
What is YARN  (0) 2022.03.27
What is MapReduce  (0) 2022.03.26
Comments