본문 바로가기

Apache

NIFI 란?

NIFI를 설치하고 간단하게 사용해본 내용을 공유 해보겠습니다.
대부분 내용은 구글 검색을 통해서 찾아보고 제가 직접 해본 내용을 기준으로 작성 했습니다.
 
1. NIFI란?
Apache NiFiNSA(National Security Agency)에서 Apache에 기증한 Dataflow 엔진.
복잡해지는 기업의 시스템들에서 신속하고, 유실 없는 데이터 전송은 점점 더 중요해 지고 있다.
Apache NiFi는 시스템 간 데이터 전달을 효율적으로 처리, 관리, 모니터링하기 위한 최적의 시스템이다.
NiFi는 다음과 같은 특징을 가지고 있으며이러한 특징들 때문에 복잡한 시스템 간의 데이터 이동에 NiFi 이용하여 쉽고, 안전하게 개발 할 수 있다.

- Dataflow를 쉽게 개발할 수 있고, 시스템 간의 데이터 이동과 내용을 볼 수 있는 기능과 UI를 제공한다.

- 실시간 데이터 전송에 필요한 유용한 기능을 제공한다.

- 강력한 자원과 권한 관리를 통해 멀티테넌시(Multi-tenant, 여러 조직이 자원을 공유해서 사용)를 지원한다.

- 데이터가 어느 시스템으로부터 왔는지 추적할 수 있다.

- 국내에는 크게 사용하는 곳이 없지만, 해외에서는 충분한 사례가 있다.

- 오픈 소스이면서, 호튼웍스의 기술 지원을 받을 수 있다.

- 여러 NiFi 시스템 간 통신을 지원한다(Site-to-site).

 

2. 주요용어

 

3. NIFI 아키텍쳐

NiFiJVM 환경에서 실행되며, 위 그림과 같은 컴포넌트들로 구성되어 있다.

Web Server

     NiFiUI를 웹 서비스를 통해 제공하며, 개발자 혹은 관리자는 이를 이용하여 Dataflow 개발, 제어, 모니터링을 한다.

Flow Controller

     Processor들의 스케줄링을 담당한다.

Extension

     NiFi가 제공하는 기본 Processor들 외, 개발자가 프로세스를 개발해 확장할 수 있다.

FlowFile Repository

     Write-Ahead-LogFlowFile의 상태와 속성값들을 저장하는 곳이다. 일반적으로 Raid 10으로 디스크를 구성하여 저장해,

     시스템 장애 때     유실되지 않게 한다.

Content Repository

     FlowFile의 데이터(Content)가 저장되며, 일반적으로 Raid 10으로 디스크를 구성해 저장하며, 여러 디렉토리에 분산 저장이 가능하다.

     때문에 용량이 큰 데이터를 저장할 수 있으며, 단일 디스크의 처리량보다 많은 양을 처리할 수 있다.

     Nifi 시스템의 역할을 봤을 때, 일반적으로 여러 파티션을 사용할 경우가 많지는 않을 것이다.

Provenance Repository

     데이터의 처리 단계별로 FlowFile 변화(원천) 데이터를 보관하는 곳으로, 여러 디스크를 지원하며, 각 데이터는 인덱스 되어 검색할 수 있다.

FlowFile, Processor

     FlowFileProcessor에 의해 생성되며, FlowFile은 속성 정보와 데이터가 들어있다.

 

 

 

4. NIFI 클러스터

 

Cluster Coordinator가 각 NiFi 서버들의 정보(가동여부, 상태)를 관리하며, DataFlow의 추가, 삭제, 수정 등의 변경을 클러스터에 등록된 NiFi 노드들에 복제해 준다.
Primary Node는 여러 노드에서 Processor가 실행되지 않고, 특정 단일 노드에서만 실행하고자 할 때 사용되는 대표 노드이다.
ZooKeepr Server 의해서 Primary Node가 자동으로 선출되며Zero-Master Clustering이 적용되어 클러스터 내에 NiFi 노드들 중 한대가 자동으로 Cluster CoordinatorPrimary Node가 된다.
클러스터의 각 노드는 같은 Dataflow를 가지고 있으며, 각 노드에서 중복되지 않는 서로 다른 데이터를 처리한다.

 

 

'Apache' 카테고리의 다른 글

Apache jmeter를 이용한 ElasticSearch 성능 테스트  (0) 2023.04.19
NIFI 사용  (0) 2023.04.07
NIFI 설치  (0) 2023.04.07