Taaewoo
Data Engineering Blog
Taaewoo
전체 방문자
오늘
어제
  • 분류 전체보기 (67)
    • Computer Science (16)
      • Algorithm (6)
      • OS (1)
      • Java (2)
      • C++ (6)
      • Python (1)
    • Hadoop Ecosystem (27)
      • Hadoop (6)
      • Spark (5)
      • NiFi (6)
      • Hive (9)
      • Kafka (1)
    • BigData Engineering (14)
      • Jupyter (1)
      • Docker (3)
      • CDH (3)
      • Riot Data Pipeline (7)
    • Back-end 개발 (0)
      • Spring (0)
    • Algorithm 문제 풀이 (9)
      • 백준 (5)
      • LeetCode (4)
    • Conference (1)
      • LINE DEVELOPER DAY 2021 (1)
      • if(kakao) 2021 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 빅데이터
  • java
  • C++
  • sort
  • BigData
  • hadoop
  • 정렬
  • docker
  • 알고리즘
  • algorithm
  • kafka
  • Hive
  • 코딩
  • hdfs
  • metastore
  • 프로그래밍
  • NiFi
  • Coding
  • spark
  • CS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Taaewoo

Data Engineering Blog

[NiFi] Docker로 NiFi 클러스터 구성하기
Hadoop Ecosystem/NiFi

[NiFi] Docker로 NiFi 클러스터 구성하기

2022. 1. 31. 04:13

Docker

 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼.

 

NiFi

 다양한 포맷의 데이터들을 ETL 처리할 수 있는 Flow-Based Programming(FBP) 툴

 

관련 글

[NiFi] NiFi의 핵심 개념 및 아키텍쳐

[NiFi] Docker & NiFi로 HDFS 데이터 수집하기​

[NiFi] Docker & NiFi 클러스터 환경에서 HDFS 데이터 분산 수집하기​


 

 이번에는 Docker를 이용해서 NiFi 클러스터를 구성해볼 예정입니다. 이전 글에서는 하나의 노드만 docker container로 실행시켜 NiFi를 작동시켰지만, 이번에는 3개의 container를 실행해 Primary node, Cluster coordinator를 확인해보겠습니다.

 

 

NiFi  클러스터 서비스 실행하기

 

 docker compose를 통해 서비스들을 실행시킬 예정이므로 간단하게 yml 파일만 명시하겠습니다. 그리고 이번 글에서는 편의상 Zookeeper를 1개만 실행시키겠지만, 실제 운영을 위해서는 꼭 3대 이상으로 구성할 것을 권유드립니다. 아래의 yml 파일은 youtube 영상을 참고했습니다. 다만 NiFi의 이미지 버전이 nifi:latest 로 되어있었는데 최신 버전을 이용하면 에러가 발생하며 서비스가 다운되는 문제가 있었습니다. 그래서 저는 1.11.4 버전을 명시하여 사용했습니다.

docker-compose.yml
version: "3"
services:
  zookeeper:
    hostname: zookeeper
    container_name: zookeeper
    image: 'bitnami/zookeeper:latest'
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes
    networks:
      - nifinet

  nifi01:
    image: apache/nifi:1.11.4
    ports:
      - 6980:8080
    networks:
      - nifinet
    environment:
      - NIFI_WEB_HTTP_PORT=8080
      - NIFI_CLUSTER_IS_NODE=true
      - NIFI_CLUSTER_NODE_PROTOCOL_PORT=8082
      - NIFI_ZK_CONNECT_STRING=zookeeper:2181
      - NIFI_ELECTION_MAX_WAIT=1 min

  nifi02:
    image: apache/nifi:1.11.4
    ports:
      - 6979:8080
    networks:
      - nifinet
    environment:
      - NIFI_WEB_HTTP_PORT=8080
      - NIFI_CLUSTER_IS_NODE=true
      - NIFI_CLUSTER_NODE_PROTOCOL_PORT=8082
      - NIFI_ZK_CONNECT_STRING=zookeeper:2181
      - NIFI_ELECTION_MAX_WAIT=1 min

  nifi03:
    image: apache/nifi:1.11.4
    ports:
      - 6978:8080
    networks:
      - nifinet
    environment:
      - NIFI_WEB_HTTP_PORT=8080
      - NIFI_CLUSTER_IS_NODE=true
      - NIFI_CLUSTER_NODE_PROTOCOL_PORT=8082
      - NIFI_ZK_CONNECT_STRING=zookeeper:2181
      - NIFI_ELECTION_MAX_WAIT=1 min

networks:
  nifinet:
    driver: bridge

 

 yml 파일을 모두 작성했다면 docker compose 명령어를 사용합니다.

$ docker compose up -d

 정상적으로 실행되었다면 NiFi web UI에 접속해줍니다. yml 파일에 port forwarding을 했기 때문에 "localhost:6980/nifi"에 접속해줍니다. 이 때 docker compose 서비스들을 실행시킨 뒤 NiFi web 서비스가 올라오는데 시간이 조금 소요되기 때문에, 접속했을 때 UI가 나타나지 않는다면 잠시 후에 다시 접속해보시면 됩니다. 그리고 UI에는 접속이 되었지만 아래의 화면이 나타나지 않는다면 모든 노드의 서비스가 올라온 것이 아니므로 조금 더 기다리시면 됩니다. 

NiFi UI에서 Primary node와 Cluster coordinator를 확인할 수 있습니다. 우측 상단의 메뉴를 눌러 "Cluster"를 눌러줍니다.

 위의 그림에서는 가장 상단에 위치한 노드가 Primary, Coordinator의 역할을 모두 수행하고 있는 것으로 확인할 수 있습니다. 참고로 Node Address에 명시된 이름은 docker container의 이름입니다. 터미널에서 "docker ps"를 통해 확인할 수 있습니다.

 

References

 

https://youtu.be/eQ4UlerXJ24

저작자표시 비영리

'Hadoop Ecosystem > NiFi' 카테고리의 다른 글

[NiFi] Json 데이터의 동적 크기 Array 전처리하기 (Base64 decoding)  (1) 2022.09.21
[NiFi] Untrusted proxy 및 UninheritableFlowException 에러 해결 방법  (0) 2022.05.22
[NiFi] Docker & NiFi 클러스터 환경에서 HDFS 데이터 분산 수집하기  (0) 2022.02.12
[NiFi] Docker & NiFi로 HDFS 데이터 수집하기  (0) 2021.11.17
[NiFi] NiFi의 핵심 개념 및 아키텍쳐  (0) 2021.11.17
    'Hadoop Ecosystem/NiFi' 카테고리의 다른 글
    • [NiFi] Untrusted proxy 및 UninheritableFlowException 에러 해결 방법
    • [NiFi] Docker & NiFi 클러스터 환경에서 HDFS 데이터 분산 수집하기
    • [NiFi] Docker & NiFi로 HDFS 데이터 수집하기
    • [NiFi] NiFi의 핵심 개념 및 아키텍쳐
    Taaewoo
    Taaewoo

    티스토리툴바