-
이전 글: 2022.08.08 - [✎ 22/Developemnt] - Apache Nifi란?
실행 환경: WSL Linux
설치는 Apache NiFi 설치와 설정 in WSL2 을 참고했으며 공식 페이지의 설치 가이드를 중점으로 진행했다.
설치 및 실행이 완료되어 간단한 예제를 하나 테스트하려고한다. TailFile과 LoggingAttribute 파일 내용을 로깅하는 것이다.
프로세스 추가
1) 상단에 보면 프로세스를 추가하는 버튼이 있다. 해당 버튼을 모눈종이(?) 화면으로 드래그앤드롭을 하면 생성할 프로세스를 선택하는 화면이 나온다.
2) 그럼 아래에 Filter 부분에서 이제 필요한 프로세스명을 를 검색하면 된다. 검색이 완료되면 선택하고 Add를 눌러주자.나는 TailFile, LogAttribute 2가지의 Process가 필요했기때문에 2가지를 추가해주었다.
Connection 추가
프로세스에 마우스를 가져다대면 화살표가 생기는데 이를 Connection을 맺을 Process로 연결시키면 된다.
Configure 설정
TailFile Process에 Configure를 클릭하고 Tailing 할 File 경로를 작성해줘야한다.
LogAttribute에는 성공한 FlowFile에 대한 Teminate를 설정해준다.
프로세스 실행
좌측에 Operate 창에서 재생버튼을 누른다.
그렇게 하고나니 큐에 FlowFile이 쌓여있다.
Queue에 쌓인 Flowfile 내용을 보면 작성해두었던 파일 내용이 나온다.이후에 서버에서 파일아래에 내용을 추가했다. 그러면 큐에 쌓인 값이 증가하고 내용 또한 동일하게 확인이 가능하다.
이제 기본적인 예제를 봤으니, kafka도 연결해보려한다. Read data from Kafka topic and write into local persistent in NiFi 를 참고하였으며, kafka 설치는 [Kafka] 카프카 설치 및 실행, 이벤트 읽고 쓰기(CLI)를 참고하였다.
카프카 설치 및 토픽 생성
카프카는 2년전에 공부를 해본적이 있다 (시간이 정말 빠르다 ^^;;)
2020.10.06 - [20.下/데이터 공부해요] - [Kafka] #1 카프카를 알아보자
2020.10.06 - [20.下/데이터 공부해요] - [Kafka] #2 카프카를 써보자카프카에서 토픽을 생성하고 이벤트를 생성하도록 하자. 토픽생성 등 명령어는 공식 홈페이지에서 APACHE KAFKA QUICKSTART 를 참고하였다.
리눅스 상에서 환경변수 설정만 해주었다.#~/.bashrc export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export KAFKA_HOME=/home/weejw/kafka/kafka_2.13-3.2.1 export PATH=$PATH:$JAVA_HOME/bin:$KAFKA_HOME/bin
1. 토픽 생성하기
kafka-topics.sh --create \ --topic weejw-topic \ --bootstrap-server localhost:9092
2. 토픽 생성된 것을 확인하기
kafka-topics.sh --describe --topic weejw-topic --bootstrap-server localhost:9092 Topic: weejw-topic TopicId: 5Ejmvs__TpKscUIsk9H1AQ PartitionCount: 1 ReplicationFactor: 1 Configs: segment.bytes=1073741824 Topic: weejw-topic Partition: 0 Leader: 0 Replicas: 0 Isr: 0
3. 토픽에 메세지 생성하기
토픽에 메세지를 생성하려고한다.. 지금 배가고프니까 음식 내용으로 해보려고한다.
id, (양식:0, 한식:1, 중식:2, 일식:3), 음식명nifi kafka consumer 설정하기
1. process 생성 및 설정하기
nifi로 가면 kafaka consumer가 있다 해당 process를 가져와서 필요한 정보를 세팅해준다(topic name, group name, broker add 등..)
2. log 확인하기
이 후에 logattribute를 추가해서 설정 및 connection을 연결해주고 producer쪽에서 메세지를 쏴주면 바로 쌓이는 것을 확인 할 수 있다 ㅎㅎ
HDFS 연결하기
Hadoop 설치 및 설정 그리고 README.txt 넣는 과정까지는 [Hadoop] 하둡 설치 (hadoop install)를 참고하였다. (하둡 다운로드 페이지)
위 참고 블로그에서 설정이 완료된 이후에는 Nifi Process를 추가한다.
properties에서는 core-site.xml, hdfs-site.xml 2가지 파일의 절대경로를 ',' 로 구분하여 입력하였고 Directory에는 hdfs 상의 파일 경로를 적어주었다.나같은 경우에는 NIFI와 Hadoop을 실행한 유저가 달랐기때문에 permission error가 발생했는데 이는
[HADOOP] 사용자 HDFS 접근 권한 설정 방법을 참고하여 root user를 그룹으로 넣어서 해결했닭그러면 hdfs에 put 명령어로 업로드한 파일을 확인할 수 있다.
References
https://quokkas.tistory.com/87
https://hdfscli.readthedocs.io/en/latest/api.html
https://ai-creator.tistory.com/31
https://toubi-tobap.tistory.com/19
https://118k.tistory.com/916
https://sexydata.tistory.com/2
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=thislover&logNo=220963687570
https://eyeballs.tistory.com/390
[튜토리얼] Apache NIFI를 설치하고 실행해보자.
https://wylee-developer.tistory.com/22
https://coding-sojin2.tistory.com/76
https://stackoverflow.com/questions/51644409/kafka-broker-fails-because-all-log-dirs-have-failed
https://www.oak-tree.tech/blog/kafka-admin-remove-messages
https://www.conduktor.io/kafka/kafka-topics-cli-tutorial
https://kafka.apache.org/quickstart
https://sup2is.github.io/2020/06/10/apache-kafka-02.html
https://nobacking.tistory.com/76'2022년 > Developement' 카테고리의 다른 글
Apache Sqoop을 알아보자 (2) 2022.10.28 nifi+kakfa+hdfs 연결해보기 (0) 2022.08.10 Apache Nifi란? (0) 2022.08.08 [ORACLE] GROUPING 함수에 관하여.. (0) 2022.07.26 오라클 계층형 쿼리 (0) 2022.07.11