Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[NiFi] - NiFi Cluster(클러스터) 본문

Study 저장소/NiFi

[NiFi] - NiFi Cluster(클러스터)

luke-king 2024. 8. 15. 15:58

 

 

 

 

 

NiFi Cluster

 

Node

  • NiFi의 인스턴스(서버)를 의미한다. NiFi 노드는 데이터를 처리하고, 관리하는 역할을 하며, 하나의 독립적인 NiFi 실행 환경을 나타낸다. NiFi는 단독으로 실행될 수도 있고(단일노드), 여러 노드가 모여 클러스터(Cluster)를 형성할 수도 있다.
  • 클러스터 내에서 여러 노드가 함께 작동하며 모든 노드는 같은 데이터 흐름(DataFlow)을 공유하면서, 데이터 처리 작업은 여러 노드에 분산되어 병렬로 수행된다.

ZooKeeper

  • ZooKeeper는 NiFi 클러스터를 관리하는데 중요한 역할을 하는 분산 코디네이션 서비스다.
  • 클러스터 내에서 각 노드의 상태를 관리하며 모니터링하고, 클러스터 내에서 어떤 노드가 활성 상태인지, 어떤 노드가 오프라인 상태인지 추적한다.
    • 만일 활성화 되어있는 노드들 중 역할이 있는 하나의 노드가 죽을 경우 ZooKeeper는 상태를 확인하고 그 역할을 다른 노드에게 부여한다. 즉 하나의 서버가 다운되더라도 정상적으로 작동할 수 있다.
  • 클러스터 내의 노드를 관리하고 조정하는 역할을 하며, 노드의 상태 모니터링, 클러스터 코디네이터와 Primary Node 선택, 분산 처리 조정 등을 담당한다.

Cluster

  • Cluster는 여러개의 Node가 모여서 하나의 그룹을 형성한 구조다. 클러스터는 NiFi 확장성과 고가용성을 가능하게 하며, 데이터를 병렬로 처리할 수 있는 환경을 제공한다.
  • 데이터 분산처리 : 클러스터는 데이터를 여러 노드에 분산한다. 각 노드는 동일한 데이터 흐름(DataFlow)을 공유하지만, 데이터 처리 작업은 여러 노드에 분산되어 병렬로 처리한다.
  • 확장성 : 클러스터는 필요에 따라 노드를 추가하거나 제거할 수 있기 때문에 시스템의 처리 능력을 유연하게 확장할 수 있다. 데이터 처리 요구사항이 증가한다면, 클러스터에 노드를 추가함으로써 더 많은 데이터를 동시에 처리할 수 있다.

 

 

 

단일노드 클러스터

  • 단일노드 클러스터는 위의 클러스터와 다르게 노드가 하나만 있다.
  • 위의 클러스터는 ZooKeeper가 있지만 단일 노드에는 ZooKeeper가 없다
    • 단일 노드이기에 Zookeeper의 역할인 Primary Node, Cluster Coordinatory를 부여할 필요가 없다.
    • 단일이면 하나의 노드가 Primary Node, Cluster Coordinatory 역할을 수행해 낸다.
  • 실질적으로 단일노드 클러스터는 잘 사용하지 안않는다.
    • 이유는 많을 데이터를 처리하게 된다면 과부하가 오게 될 것이고 노드가 죽게 된다면 어떤 다른 노드가 대체할 수 없기 때문이다.