-
Mac OS 에서 Apache Nifi 사용해보기 #1 - NiFi 란?Intelligent Product/Apache NiFi 2022. 10. 12. 23:08
Apache NiFi란?
- 데이터를 가공하고, 분배하는 것에 있어서 사용하기 쉽고, 강력하고, 안정적인 시스템이다. (Apache NiFi 공식홈페이지 안내)
- 데이터를 가져오고 전처리 후 적재하기 위한 ETL(Extract-Transformation-Load) 도구 의 일종으로 분산처리 환경에서 대량의 데이터를 수집, 처리 할 수 있다.
- 한마디로 데이터 플로우(파이프라인)을 쉽게 작성하고, 자동화 할 수 있는 관리 프로그램
아파치 나이파이(Apache NiFi, 나이아가라파일즈/NiagaraFiles의 준말)는 미국국가안보국(NSA: National Security Agency)에서 처음 개발 되어 2014년 오픈 소스화 된 나이아가라파일즈(NiagaraFiles) 소프트웨어 기반을 두고 있다. 소프트웨어 개발 및 지원은 원 개발사 Onyara를 인수한 Hortonworks에서 제공하고 있다.
구성요소
나이파이는 호스팅 대상 서버의 JVM안에서 실행되는 JAVA 프로그램이다. 나이파이의 주된 구성 요소는 다음과 같다.
- 웹 서버(Web Server) - 발생되는 이벤트를 모니터링하고 소프트웨어를 시각적으로 제어하기 위해 사용되는 HTTP기반 구성 요소
- 플로 컨트롤러(Flow Controller) - 나이파이 동작의 뇌 역할을 담당한다. 나이파이 확장 기능의 실행을 통제하고 이를 위한 자원 할당을 스케줄링한다.
- 확장 기능(Extensions) - 나이파이가 다양한 종류의 시스템과 통신할 수 있게 하는 다양한 플러그인
- 플로파일 저장소(FlowFile repository) - 나이파이가 현재 실행 중인 플로파일(FlowFile)의 상태를 추적하고 정비하기 위해 사용.
- 콘텐츠 저장소(Content repository) - 여기에서 전송 대상의 데이터가 관리된다
- 프로비넌스 저장소(Provenance repository) - 여기에서 시스템을 경유하는 데이터의 프로버넌스와 관련한 데이터가 관리된다
NiFi의 장점
- 실시간 처리에 매우 적합함 (파일 생성시 실시간으로 다른 DB 혹은 FTP로 전송 가능)
- Zero Master 클러스터 환경을 제공하며 확장이 쉬움
- 데이터 유실없이 데이터 전송 가능
- HTTPS를 통한 통신보안
- 웹 기반의 직관적 UI
- 데이터 이동경로 추적가능
- 여러 NiFi 시스템 간 통신을 지원해 클러스터간 Site-to-Site 데이터교환 가능
NiFi의 단점
- 배치작업 효율이 떨어짐.
- 원본 소스파일 누락없이 전송이 되었는지 확인이 힘듬
- 스케줄러는 배치 스케줄러가 아니라 실행되는 내용 확인 불가능 실행 후 성공,실패, 출력 결과만을 알수있음.
- 간단한 데이터 조작만 가능 복잡한 연산 불가. -> Spark,Storm등과 연동하여 구현 가능
'Intelligent Product > Apache NiFi' 카테고리의 다른 글
Mac OS 에서 Apache Nifi 사용해보기 #6 - 실습(Custom Processor) (0) 2022.10.24 Mac OS 에서 Apache Nifi 사용해보기 #5 - 실습(날씨 데이터 수집)3 (0) 2022.10.19 Mac OS 에서 Apache Nifi 사용해보기 #4 - 실습(날씨 데이터 수집)2 (0) 2022.10.13 Mac OS 에서 Apache Nifi 사용해보기 #3 - 실습(날씨 데이터 수집)1 (1) 2022.10.13 Mac OS 에서 Apache Nifi 사용해보기 #2 - NiFi 설치 (0) 2022.10.12