Data Engineering/NiFi

[ NiFi ] 3. NiFi 튜토리얼

쟈누이 2021. 4. 28. 18:27
반응형

 

 

 

1. 개요


추후 회사 프로젝트에 대비해 NiFi 사용법에 대해 공부중이다. 

공부하면서 익힌 부분들을 추후 다시 복습하기 위해 블로그에 남겨본다. 

우선 앞의 과정을 통해 NiFi 를 설치했다는 가정 하에 진행한다.

 

 

그리고 전체적인 튜토리얼 진행은  kwangsiklee 님의 블로그 에서 발췌한 내용의 흐름을 따라가고 있으며, 발생한 상황에 따라 일부를 좀 더 추가해 보강했다.

 

 

 

2. NiFi 테스트


NiFi에서 이벤트를 받아 Flow File 을 생성하는 모습을 확인한다.

Tailing 프로세스를 만들어 실제 Tailing 된 Flow File 을 볼 예정이다

 

 

1) Processor 추가하기

 

특정 파일 Tailing 을 위해 TagFile 프로세스를 추가한다.

nifi의 경우 특정 프로세스를 만들고 싶은 경우, 아이콘을 클릭하고 화면으로 드래그하면 프로세서가 자동으로 생성된다. 

 

- tail 프로세서와 log 프로세서를 생성해준다

 

- 그러면 아래와 같이 프로세서 두개를 만들 수 있다

 

 

2) Tag File 설정하기

 

프로세서 생성 후, 사용할 준비가 되지 않은 경우에는 아래 이미지와 같이 느낌표 아이콘이 뜬다.

세부 설정을 위해 TagFile 의 마우스 오른쪽을 눌러 Configure 를 클릭한다

 

(해당 이미지 일부는 kwangsiklee 님의 블로그에서 일부 발췌해왔다)

출처 : http://www.kwangsiklee.com/2018/07/%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-apache-nifi%EB%A5%BC-%EC%84%A4%EC%B9%98%ED%95%98%EA%B3%A0-%EC%8B%A4%ED%96%89%ED%95%B4%EB%B3%B4%EC%9E%90/

 

 

- 튜토리얼 과정이므로 다른 설정들은 건너뛰고 난 후, File to Tail 설정에서 우리가 tailing 할 파일을 설정하고 저장한다.

- Log 프로세서의 경우에는 success 일 경우 들어온 데이터를 지울 예정이므로 들어온 데이터가 success 일 경우 자동으로 지워지는 옵션을 클릭해준다

 

 

3) Relationship 연결하기

 

각 프로세서는 서로간 relationship 을 맺을 수 있다.

즉, Tailing 한 Flow File을 어디로 보낼지 relationship 으로 설정 할수 있다는 것이다.

이번에는 Log Attribute 로 보낼 예정이다.

 

마우스를 올리면 화살표 아이콘이 생긴다. 이를 드래그하여 연결하고자 하는 프로세서에 끌어 놓으면 가운데 relationship 을 나타내는 queue 아이콘이 생긴다. 

 

 

4) 프로세서 실행하기

 

아래의 방법으로 프로세서를 실행시켜준다.

 

 

5) Tail 이벤트 발생시키기

 

아까 설정한  /home/nifi/tailing 위치에 a 라는 파일을 생성한다

$ echo "hahahahahahahaha" >> a

 

 

 

6) 이벤트 결과 학인하기

 

 /home/nifi/tailing/a 파일에 hahahahahaha 가 추가되었으므로 nifi 에서 확인할 경우 하나의 이벤트가 생성된 것을 알 수 있다.

 

현재 logAttribute 를 정지시켜 놓았으므로, 이벤트는 queue 에 머물러 있다. 이벤트가 queue 에 머무른 상태에서는 직접 볼 수 있다.

- queue 의 List queue 을 클릭한 후

- 눈 아이콘을 클릭하면,

 

- 내가 생성한 이벤트를 볼 수 있다

 

 

 

 

3. 정리


아무리봐도 현재까지는 kafka, rebbit-mq 와 비슷한 면이 없지않이 있는 것 같으나, 차이점이라면

NiFi 를 이용한다면 ETL 처리를 Flow File 기분으로 순서도를 만들면서 한 눈에 제어할 수 있다는 점이 이 NiFi 의 큰 장점 같았다. 

 

다음에는 마지막으로 NiFi 를 응용해서 Kafka 와 연동을 한 프로세스를 구축해봐야 겠다.

 

 

 

4. 참고사항


만약 can not be enable to open file 이라는 에러가 뜨며 프로세스가 진행이 될 경우가 생길 수 있다, 그럴 때는 파일이 저장된 부분을 nifi 가 권한 문제로 인해 접근을 못하고 있는것일 가능성이 크므로 해당 파일의 권한을 읽고 쓰기가 가능한 수준으로 변경해주면 될 것이다. 

 

나의 경우에는 권한을 변경해 주었더니 nifi 에서 해당 파일에 접근이 가능했었다.

chmod 766 a 
# a 파일의 권한을 변경해서 외부에서도 접근가능하게 설정

 

 

5. 참고 링크


www.kwangsiklee.com/2018/07/%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-apache-nifi%EB%A5%BC-%EC%84%A4%EC%B9%98%ED%95%98%EA%B3%A0-%EC%8B%A4%ED%96%89%ED%95%B4%EB%B3%B4%EC%9E%90/

 

[튜토리얼] Apache NIFI를 설치하고 실행해보자.

개요 Apache Nifi에 대한 간략한 소개는 윤병화님의 NiFi 시작하기로 알 수 있다. 이번 글에서는 Apache Nifi를 로컬에서 다운로드해서 설치해보고 기본 사용법을 익혀보기로 한다. 해당글은 Apache Nifi의

www.kwangsiklee.com

 

 

반응형