-
[Apache Nifi] Nifi란 무엇인가?(구성요소, 아키텍쳐)데이터 엔지니어링/Nifi 2022. 4. 7. 20:35반응형
Nifi란??
- Apache Nifi는 시스템 간 데이터 전달을 효율적으로 처리, 관리, 모니터링 하기에 최적화 된 시스템임. 대량의 데이터 수집, 처리가능
- Dataflow를 쉽게 구성이 가능하며, 시스템 간의 데이터 이동과 내용을 볼 수 있는 UI제공
- 강력한 자원과 권한 관리를 통해 Multi-tenant(단일로 여러 소프트웨어에 공급하는 것)지원
- 데이터 어느 시스템으로 왔는지 추적 가능
- NiFi 시스템 간 통신 지원(site to site)
Nifi 구성요소
- FlowFile, Processor, Connection, Controller이 대게 네 가지로 이루어짐
- FlowFile - NiFi가 인식하는 데이터 단위
- 일반적인 데이터 Content/Attributes로 나뉨
- Content는 데이터 자체를 말함
- Attribute는 데이터와 관련된 정보를 키/값 쌍으로 표현 한 것이다.
- Processor - FlowFile을 수집, 변형, 저장하는 기능
- 처리 이후에 또다른 FlowFile을 만들어 낼수도 있다.
- Processor는 여러개가 병렬적으로 동작 할 수 있다.
- Conector - Processor와 Processor를 연결 및 FlowFile을 전달하는 역할
- FlowFile의 Queue를 의미함
- 우선순위 조정 및 backpressure를 설정해 부하를 조절 할 수 있다.
- Flow Controller - 각 프로세스간의 연결, 그 사이에 오가는 FlowFile에 대해서 관리
Nifi 아키텍처
- web server - UI 웹 서버를 통해 제공, 개발자 혹은 관리자는 이를 이용해 DataFlow개발, 제어 모니터링 가능
- Flow Controller - Processor 가 어느 간격 또는 시점에 실행 되는지 스케쥴링을 담당
- Extension - NiFi가 제공하는 기본 Processor들 이외에 개발자가 Process를 개발해 확장이 가능
- Flow Controller - Write-Aheade-Log로 FlowFile의 속성과 상태값을 저장하는 곳, 시스템 장애시 데이터가 유실 되지 않도록 주의
- Content Repository - FlowFile의 데이터(Content)가 저장되며, 여러 디렉토리에 분석 저장이 가능 대용량 데이터 처리에 용의
- Provenance Repository - 데이터의 처리 단계별로 FlowFile 데이터를 보관하는 곳으로, 여러 디스크를 지원한다. 이 때 각 데이터는 인덱스 검색 할 수 있다.
ZooKeeper 연동
- Cluster Coordinator - 각 NiFi서버들의 정보를 관리, DataFlow의 추가, 수정, 삭제 등의 변경을 클러스터에 등록된 NiFi노드들에 복제 해준다.
- Primary Node - 여러 노드에서 Processor가 실행 되지 않고, 특정 단일 노드에서만 실행하고자 할 때 사용하는 대표 노드
- ZooKeeper Server - 위와 같은 역할은 ZooKeeperServer에서 자동으로 선출 되며, NiFi1.0부터 Zero-MasterClustering 이 적용되어 클러스터 내에 NiFi 노드들 중 한대가 자동으로 Cluster Coordinator와 Primary Node가 된다.
반응형'데이터 엔지니어링 > Nifi' 카테고리의 다른 글
[Apache NIFI Linux(ubuntu)]설치 방법 (0) 2022.04.29 [Apache Nifi] 실습2 - CSV2Json 패턴 만들기 - Controller사용법 (0) 2022.04.09 [Apache Nifi]실습 1 - GetFile - PutFile 파일가져와 옮기기 패턴 만들기 - Processor, Connector 사용법 (2) 2022.04.08 [Apache Nifi] 웹페이지 구성 훑어보기 (0) 2022.04.08 [Apache NIFI] NiFi 설치하기(MAC, WINDOWS), 폴더구조 파악, 서버 구동 및 정지, 사용자 만들어 접속해보기 (0) 2022.04.08