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를 사용하다 보면 컨테이너의 configure 파일 등을 잘못 입력하고 restart 해버리는 경우 다시 start를 못하는 경우가 발생할 수 있다. 아래 명령어를 사용하여 해결할 수 있다. 해당 명령어는 컨
hbcha0916.tistory.com
공식 문서
Apache NiFi MiNiFi
Copyright © 2023 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, NiFi, Apache NiFi and the project logo are trademarks of The Apache Software Foundation.
nifi.apache.org
Docker에서 MiNiFi 설치
Docker
hub.docker.com
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 다운로드 및 설치
Apache NiFi MiNiFi Downloads
Copyright © 2023 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, NiFi, Apache NiFi and the project logo are trademarks of The Apache Software Foundation.
nifi.apache.org
여기서 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와 설정이 똑같으므로 링크한다.
NiFi TimeZone변경
Docker에 설치된 NiFi 의 TimeZone을 변경하지 않으면 아래와 같은 문제가 있다. 최근업데이트 표시가 UTC 기준으로 표기된다. 향후 RDB와 연동 시 TimeZone오류로 연결이 불가능하다. 아직은 이와 같은 문
hbcha0916.tistory.com
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 |
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를 사용하다 보면 컨테이너의 configure 파일 등을 잘못 입력하고 restart 해버리는 경우 다시 start를 못하는 경우가 발생할 수 있다. 아래 명령어를 사용하여 해결할 수 있다. 해당 명령어는 컨
hbcha0916.tistory.com
공식 문서
Apache NiFi MiNiFi
Copyright © 2023 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, NiFi, Apache NiFi and the project logo are trademarks of The Apache Software Foundation.
nifi.apache.org
Docker에서 MiNiFi 설치
Docker
hub.docker.com
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 다운로드 및 설치
Apache NiFi MiNiFi Downloads
Copyright © 2023 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, NiFi, Apache NiFi and the project logo are trademarks of The Apache Software Foundation.
nifi.apache.org
여기서 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와 설정이 똑같으므로 링크한다.
NiFi TimeZone변경
Docker에 설치된 NiFi 의 TimeZone을 변경하지 않으면 아래와 같은 문제가 있다. 최근업데이트 표시가 UTC 기준으로 표기된다. 향후 RDB와 연동 시 TimeZone오류로 연결이 불가능하다. 아직은 이와 같은 문
hbcha0916.tistory.com
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 |