위지원의 데이터 일기 🐈
Home
  • 분류 전체보기 (563)
    • ✎ 2025년 (4)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
Home
  • 분류 전체보기 (563)
    • ✎ 2025년 (4)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
블로그 내 검색
포트폴리오

위지원의 데이터 일기 🐈

데이터를 사랑하고 궁금해하는 기록쟁이입니다! 😉 Super Data Girl이 되는 그날까지🏃‍♀️ 화이팅!

  • 🖥 깃블로그
  • 🌍 위키원
  • 📑 내맘대로 스크랩
  • 💌 메일
  • 2022년/Developement

    Nifi 설치 및 실행, 예제 및 kafka, hdfs연결해보기

    2022. 8. 9. 11:47

    by. 위지원

    이전 글: 2022.08.08 - [✎ 22/Developemnt] - Apache Nifi란?

     

    Apache Nifi란?

    Apache Nifi란? Apache NiFi Copyright © 2022 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, NiFi, Apache NiFi and the project logo..

    weejw.tistory.com

     


    실행 환경: 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 경로를 작성해줘야한다.

    WSL에 미리 작성해둔 파일(hello world를 작성해두었다)
    위 파일 경로를 File(s) to Tail에 작성해준다.

    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을 알아보자  (3) 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

    잠깐만요~! 읽으신김에 이런 글들은 어떠세요? 👀

    • Apache Sqoop을 알아보자 2022.10.28
    • nifi+kakfa+hdfs 연결해보기 2022.08.10
    • Apache Nifi란? 2022.08.08
    • [ORACLE] GROUPING 함수에 관하여.. 2022.07.26
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

열정! 열정! 열정! 🔥

Designed by Nana
블로그 이미지
위지원
데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨

티스토리툴바

티스토리툴바