반응형
Apache MiNiFi
쉽게 말하면 NiFi의 포터블 버전이다.
C++ 버전과 Java버전이 있다.
- C++ : 매우가볍고 자원을 매우 낮게 사용
- Java : 가볍지만 시스템 리소스를 사용한다. (JVM을 쓰기 때문), NiFi의 기능을 사용할 수 있다.
사용 유형
아래와 같은 사용자에게 적합하다.
- NiFi와 상호통신하는 Agent(보통 수집용)
- 서버 사양이 극히 낮을 경우 등
주의사항
주의사항
MiNiFi와 설치된 NiFi와 같은 버전을 설치하는 것이 좋다.
단점
- NiFi 의 parameter contexts 사용 불가 -> yml의 변수(alias) 기능을 사용하여 일부 불편을 해소할 수 있긴함.
- NiFi 처럼 DataFlow를 확인하지 못함 : 처음에는 NiFi로 작성되지만 시간이 흘러 향후 유지보수때 어떤 구조였는지 잊어먹음(스크린샷 등으로 찍어서 보관해야 한다.)
- MiNIFI에 없는 프로세서는 수동으로 lib 에 넣어줘야함
- 만약 Docker에서 실행 시 yml을 잘못 작성한 경우 컨테이너가 죽어버릴 수 있음
- 해당 사이트에서 해결 가능
공식 문서
Docker에서 MiNiFi 설치
docker pull apache/nifi-minifi
docker run --name minifi -d
간단하게 설치가 끝났다.
일반 Linux에서 MiNIFi 설치
JAVA설치
권장사양이 1.8이라고 하니(공식문서에 그렇게 나와있었음) 1.8을 설치해준다.
sudo apt-get update && sudo apt-get install -y openjdk-8-jdk
MiNiFi 다운로드 및 설치
여기서 MiNiFi Java Release 의 Binaries에서 아래 두 개의 파일을 받는다.
- Apache NiFi MiNiFi Binary x.xx.x : 미니파이 프로그램
- Apache NiFi MiNiFi Toolkit Binary x.xx.x : NiFi 의 탬플릿을 yml파일로 변환하는 툴킷
미니파이 프로그램을 다운받았으면 minifi를 설치할 디렉토리에다가 앞축을 풀어준다.
환경변수 설정
sudo vi /etc/profile
export JAVA_HOME=<자바 설치 디렉토리>
export PATH=$PATH:$JAVA_HOME/bin
export MINIFI_HOME=<미니파이 디렉토리>
export PATH=$PATH:$MINIFI_HOME/bin
:wq
source /etc/profile
MiNiFi TimeZone 변경
NiFi와 마찬가지로 MiNiFi 또한 TimeZone을 변경해야 하는 경우가 있다.
NiFi와 설정이 똑같으므로 링크한다.
MiNiFi 시작, 중지 등 각종 명령어
일반 리눅스일경우
sudo sh $MINIFI_HOME/bin/minifi.sh start
sudo sh $MINIFI_HOME/bin/minifi.sh stop
#기타 사용 가능한 명령어
Usage minifi {start|stop|run|restart|status|flowStatus|dump|install}
Docker환경일 경우
docker (start|stop|restart..) minifi
config.yml파일을 수정 , 라이브러리 추가/삭제 등 내부 변동이 있을때마다 MiNiFi를 재시작 해야한다.
MiNiFi에 기본으로 있는 프로세서
기본적으로 있는 프로세서
아래 목록 중에 있는 프로세서들만 사용한다면 config.yml파일만 적용시키고 별다른 라이브러리 추가를 하지 않아도 된다.
- UpdateAttribute
- AttributesToJSON
- Base64EncodeContent
- CompressContent
- ControlRate
- ConvertCharacterSet
- DuplicateFlowFile
- EncryptContent
- EvaluateJsonPath
- EvaluateRegularExpression
- EvaluateXPath
- EvaluateXQuery
- ExecuteProcess
- ExecuteStreamCommand
- ExtractText
- FetchFile
- FetchSFTP
- GenerateFlowFile
- GetFTP
- GetFile
- GetHTTP
- GetJMSQueue
- GetJMSTopic
- GetSFTP
- HashAttribute
- HashContent
- IdentifyMimeType
- InvokeHTTP
- ListFile
- ListSFTP
- ListenHTTP
- ListenRELP
- ListenSyslog
- ListenTCP
- ListenUDP
- LogAttribute
- MergeContent
- ModifyBytes
- MonitorActivity
- ParseSyslog
- PostHTTP
- PutEmail
- PutFTP
- PutFile
- PutJMS
- PutSFTP
- PutSyslog
- ReplaceText
- ReplaceTextWithMapping
- RouteOnAttribute
- RouteOnContent
- RouteText
- ScanAttribute
- ScanContent
- SegmentContent
- SplitContent
- SplitJson
- SplitText
- SplitXml
- TailFile
- TransformXml
- UnpackContent
- ValidateXml
기본으로 없는 프로세서는 어떻게 사용하는지, NiFi와 어떻게 상호통신하는지는 다음에 알아보자.
반응형
'NiFi > MiNiFi' 카테고리의 다른 글
MiNiFi에서 기본으로 없는 프로세서 사용방법 (0) | 2023.05.24 |
---|---|
MiNiFi - NiFi와 상호통신하는 방법, MiNiFi Flow 작성 방법 (0) | 2023.05.24 |
MiNiFi Toolkit 사용방법 (0) | 2023.05.24 |