[Infra]아파치 나이파이(Apache Nifi)

업데이트:

아파치 나이파이(Apache Nifi)

참고링크

운영체제 프론트엔드 백엔드 데이터베이스 인프라
리눅스구조 js필터 아파치에러로그 행삭제 아파치스쿱
프로세스 헬로월드 웹서버개념 ES기초 로그분석
네임스페이스 프로젝트생성 아파치설치 MySQL기초 beeline
디렉토리 헤더생성 flask연동 큐브리드 하둡기초
리다이렉션 async-get 장고MsSQL연결 null공백 나이파이
쓰레드 async-post 장고MySQL연결 MySQL설치(win) 백본
라즈베리파이설치 로그인페이지 장고inpectdb MySQL테이블생성 제플린
OSI7계층소개   장고read   SSL인증
OSI1계층   장고insert   커버로스
OSI2계층   장고put   도커개념
OSI3계층   장고del   도커설치
OSI4계층   flask한글요청   도커기초
OSI5,6,7계층       도커이미지
DNS서버       컨테이너네트워크
DHCP       도커API
bashrc       도커컴포즈
bash       도커볼륨
ifconfig       장고이미지
소켓프로그래밍       도커postgre
리눅스유저생성       도커이미지삭제
netstat포트열기       도커Redis
컴파일러       k8s구조
운영체제vs커널       k8s설치
작업스케쥴링       k8s서비스배포
디스크추가       POD네트워크
aws유저추가       퍼시스턴트볼륨
기초명령어       k8s에러
포트번호        

아파치 나이파이란

아파치 나이파이(Apache NiFi, 나이아가라파일즈/NiagaraFiles의 준말)는 소프트웨어 시스템 간 데이터 흐름을 자동화하도록 설계된 아파치 소프트웨어 재단의 소프트웨어 프로젝트이다. 과거에 NSA에 의해 개발되었고 2014년 기술 전송 프로그램의 일부로서 오픈 소스화된 나이아가라파일즈(NiagaraFiles) 소프트웨어에 기반을 둔다.

개발자 가이드

FlowFile

플로우파일(FlowFile) 이란 data와 attribute를 뜻한다. 플로우파일은 Attribute의 집합을 포함하는 데이터 조각이라는 논리적인 개념입니다. 여기서 Attribute는 데이터의 이름, 크기, uuid 같은 유일한 식별수단(unique identifier)을 포함합니다. 플로우파일의 내용이나 attribute는 바꿀수 있지만 플로우파일 오브젝트 그 자체는 불변합니다. 플루우파일의 수정은 ProcessSession을 통해 가능합니다.

Processor API

프로세서(Processor)는 나이파이에서 가장 다양한 범위에서 쓰이는 요소 입니다. 프로세서를 이용하면 플로우파일의 생성(create), 제거(remove), 수정(modify), 검사(inspect)가 가능합니다.

설명서

Working With Attributes

Attribute를 이용해서 할 수 있는 일

  1. FlowFile의 라우팅을 결정할 수 있다. 이 작업은 “RouteOnAttribute”를 이용해 수행할 수 있다. RouteOnAttribute의 결과값은 boolean이다.

  2. Attribute는 프로세서가 프로세서 환경설정이 데이터 그 자체에 의존하는지 설정하는데 사용된다. 예를 들어, PutFile 프로세서가 있을때, directory Attribute, filename Attribute를 보고 서로 다른 FlowFile을 어디로 보내는지 결정한다.

  3. Attribute는 데이터의 맥락을 제공한다.

소프트웨어 구성요소

나이파이는 호스팅 대상 서버의 자바 가상 머신 안에서 실행되는 자바 프로그램이다. 나이파이의 주된 구성 요소는 다음과 같다.

  • 웹서버(Web server)
    발생되는 이벤트를 모니터링하고 소프트웨어를 시각적으로 제어하기 위해 사용되는 HTTP 기반 구성요소

  • 플로 컨트롤러(Flow Controller)
    나이파이 동작의 뇌 역할을 담당한다. 나이파이 확장 기능의 실행을 통제하고 이를 위한 자원 할당을 스케줄링한다.

  • 확장 기능(Extensions)
    나이파이가 다양한 종류의 시스템과 통신할 수 있게 하는 다양한 플러그인

  • 플로파이어 저장소(FlowFile repository)
    나이파이가 현재 실행 중인 플로파이어(FlowFile)의 상태를 추적하고 정비하기 위해 사용.

  • 콘텐츠 저장소(Content repository)
    여기에서 전송 대상의 데이터가 관리된다.

  • 프로버넌스 저장소(Provenance repository)
    여기에서 시스템을 경유하는 데이터의 프로버넌스와 관련한 데이터가 관리된다.

Nifi CLI 커맨드

Usage

The CLI toolkit can be executed in standalone mode to execute a single command, or interactive mode to enter an interactive shell.

To execute a single command:

./bin/cli.sh <command> <args>

To launch the interactive shell:

./bin/cli.sh

To show help:

./bin/cli.sh -h

The following are available commands:

demo quick-import
nifi current-user
nifi cluster-summary
nifi connect-node
nifi delete-node
nifi disconnect-node
nifi get-root-id
nifi get-node
nifi get-nodes
nifi offload-node
nifi list-reg-clients
nifi create-reg-client
nifi update-reg-client
nifi get-reg-client-id
nifi pg-import
nifi pg-start
nifi pg-stop
nifi pg-get-vars
nifi pg-set-var
nifi pg-get-version
nifi pg-change-version
nifi pg-get-all-versions
nifi pg-list
nifi pg-status
nifi pg-get-services
nifi pg-enable-services
nifi pg-disable-services
registry current-user
registry list-buckets
registry create-bucket
registry delete-bucket
registry list-flows
registry create-flow
registry delete-flow
registry list-flow-versions
registry export-flow-version
registry import-flow-version
registry sync-flow-versions
registry transfer-flow-version
session keys
session show
session get
session set
session remove
session clear
exit
help

To display extensive help for a specific command:

./bin/cli.sh <command> -h

참고: 위키백과