Docker
내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼.
NiFi
다양한 포맷의 데이터들을 ETL 처리할 수 있는 Flow-Based Programming(FBP) 툴
관련 글
[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
'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 |