Tech 공유 세미나 - 2차 / / 2023. 11. 20. 11:00

1장 Apache NiFi 소개

목차
  • Apache NiFi란 무엇입니까?
  • Apache NiFi의 기대 성능과 기능의 개요

Apache NiFi란 무엇입니까?

본론에 앞서, 아파치 재단은 설립 이후 다수의 중요한 오픈소스 프로젝트를 주도해 오면서, 빅데이터 분야에 다양한 부분에 이바지하고 있습니다. 그 분야는 하둡, 톰캣, 제로니모 등을 시작으로 그루비, 스파크, 톰캣, 플렉스 등 많습니다.

 

그 중 Nifi는 시스템 간 데이터 흐름을 자동화하기 위해 구축되었습니다.

 

'데이터 흐름'이라는 용어는 다양한 맥락에서 사용되지만, 여기서는 시스템 간 정보를 자동화하고 관리하는 것을 의미합니다. 조금 더 실용성 있게 접근한다면, 기업이 연관성 있는 둘 이상의 시스템을 가지고 있을 때 '데이터 흐름'이 존재한다고 볼 수 있습니다. 여기서 어떤 시스템은 데이터를 생성하고, 또 다른 시스템은 데이터를 소비합니다. 

 

Extract Transform Load (ETL)

 

위 그림은 흔히들 알고 있는 ETL의 기능으로 데이터 웨어하우스나 데이터베이스에 데이터를 추출, 변환, 적재하는 프로세스의 이미지입니다

 

Apache NiFi의 기대 성능과 기능의 개요

나이파이는 기본 시스템 자원을 최대한 활용해서 데이터 흐름을 자동화하는 도구로 성능 및 특성은 다음과 같습니다.

 

 

I/O 성능

일반적인 디스크 읽기/쓰기는 초당 50MB를 예상하며, 나이파이는 초당 100MB 이상의 처리량에 효율적으로 도달할 수 있다고 설명하고 있습니다. 또한 추가 파티션 및 저장소를 통해 선형적으로 성장하며, 병목 현상은 FlowFile 및 출처 리포지토리에서 발생할 수 있습니다. 그리고 이는 관리가 가능합니다.

 

CPU 사용

Flow Controller는 여러 스레드를 사용하여 작업을 처리하며, 이상적인 스레드 수는 호스트 시스템의 코어 수 및 IO 특성에 따라 결정이 됩니다.

 

Mem (메모리)

나이파이는 JVM에서 실행되므로 제한된 JVM 메모리 공간을 사용합니다. 따라서 JVM의 가비지 컬렉션 설정이 중요하며 적절한 힙 크기 및 최적화가 필요합니다. 충분한 디스크 구성으로도 성능을 향상할 수 있습니다.

 

효율적인 데이터 흐름 관리를 위한 핵심 기능들

 

 

배송보장 (Guaranteed Delivery)

나이파이는 데이터가 성공적으로 송신자로부터 수신자에게 전달됨을 보장하는 배송보장 기능을 제공합니다. 프로세스 상에서 실패하거나 손실될 위험이 있을 때, 자동으로 재처리하거나 경고 알림을 보내어 데이터 무결성을 보호합니다.

 

데이터 버퍼링 (Data Buffering)

데이터 피크 트래픽 시스템 성능에 영향을 주지 않도록 나이파이는 내부 버퍼링 시스템을 활용하여 데이터를 임시 저장합니다. 이 버퍼링 능력으로 흐름을 안정화시키고, 수식 측 시스템이 효율적으로 처리 가능하도록 돕습니다.

 

플로우별 Qos (Quality of Service)

나이파이는 서로 다른 데이터 흐름에 QoS를 설정하여 네트워크 리소스를 최적으로 분배합니다. 필요에 따라 우선순위를 부여관리 함으로써 전체 시스템의 성능과 안정성을 향상시킵니다.

 

사용자 용이성 (Ease of Use)

나이파이의 사용자 친화적인 인터페이스는 데이터 흐름을 설계하고 모니터링하는 작업을 간편하게 만들어줍니다. 나이파이의 시각적 명령 및 제어의 기능은 시각적으로 복잡성을 줄이고 영역을 식별하는데 크게 도움이 됩니다. 

 

데이터출처

나이파이는 데이터의 원천, 즉 데이터 출처 기능을 제공합니다. 데이터 출처를 제공함에 따라 신뢰성있게 데이터를 관리하고 문제 발생시 신속하게 원인을 파악할 수 있습니다.

 

시스템 대 시스템

나이파이는 서로 다른 시스템 간의 데이터 교환을 쉽고 안전하게 구현할 수 있습니다. 다양한 데이터 형식과 프로토콜을 지원하며, 이러한 호환성은 시스템 간의 원할한 통합을 보장합니다.

 

스케일 업 다운

클라우드 환경과 같이 트래픽 패턴이 불규칙한 환경에서의 나이파이는 스케일 업과 스케일 다운 기능을 통해 트래픽 변화에 따라 리소스를 동적으로 할당&회수를 지원함으로써 자원의 효율적인 활용을 가능하게 합니다.

 

이러한 나이파이의 핵심 기능들은 데이터를 신속하고 안정적으로 처리하는 데 기여하고, 다양한 데이터 흐름의 요구사항을 충족하는 강력한 도구입니다. 

 

다음장에서는 데모 Flow를 시연하고 구성된 내용을 같이 확인해 보겠습니다.


[1] Qos : 서비스 품질(영어: Quality of Service, QoS)은 응용 프로그램, 사용자, 데이터 흐름 등에 우선순위를 정하여 데이터 전송에 특정 수준의 성능을 보장하기 위한 능력을 말한다

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유