- Dataflow를 쉽게 개발할 수 있고, 시스템 간의 데이터 이동과 내용을 볼 수 있는 기능과 UI를 제공한다.
- 실시간 데이터 전송에 필요한 유용한 기능을 제공한다.
- 강력한 자원과 권한 관리를 통해 멀티테넌시(Multi-tenant, 여러 조직이 자원을 공유해서 사용)를 지원한다.
- 데이터가 어느 시스템으로부터 왔는지 추적할 수 있다.
- 국내에는 크게 사용하는 곳이 없지만, 해외에서는 충분한 사례가 있다.
- 오픈 소스이면서, 호튼웍스의 기술 지원을 받을 수 있다.
- 여러 NiFi 시스템 간 통신을 지원한다(Site-to-site).
2. 주요용어
3. NIFI 아키텍쳐
NiFi는 JVM 환경에서 실행되며, 위 그림과 같은 컴포넌트들로 구성되어 있다.
NiFi는 UI를 웹 서비스를 통해 제공하며, 개발자 혹은 관리자는 이를 이용하여 Dataflow 개발, 제어, 모니터링을 한다.
Processor들의 스케줄링을 담당한다.
NiFi가 제공하는 기본 Processor들 외, 개발자가 프로세스를 개발해 확장할 수 있다.
Write-Ahead-Log로 FlowFile의 상태와 속성값들을 저장하는 곳이다. 일반적으로 Raid 10으로 디스크를 구성하여 저장해,
시스템 장애 때 유실되지 않게 한다.
FlowFile의 데이터(Content)가 저장되며, 일반적으로 Raid 10으로 디스크를 구성해 저장하며, 여러 디렉토리에 분산 저장이 가능하다.
이 때문에 용량이 큰 데이터를 저장할 수 있으며, 단일 디스크의 처리량보다 많은 양을 처리할 수 있다.
Nifi 시스템의 역할을 봤을 때, 일반적으로 여러 파티션을 사용할 경우가 많지는 않을 것이다.
데이터의 처리 단계별로 FlowFile 변화(원천) 데이터를 보관하는 곳으로, 여러 디스크를 지원하며, 각 데이터는 인덱스 되어 검색할 수 있다.
FlowFile은 Processor에 의해 생성되며, FlowFile은 속성 정보와 데이터가 들어있다.
4. NIFI 클러스터
'Apache' 카테고리의 다른 글
Apache jmeter를 이용한 ElasticSearch 성능 테스트 (0) | 2023.04.19 |
---|---|
NIFI 사용 (0) | 2023.04.07 |
NIFI 설치 (0) | 2023.04.07 |