빅데이터/Apache Nifi / / 2023. 12. 5. 19:43

Apache nifi 개발자 안내서(1)

이번 장에서는 아파치 나이파이에 작성된 docs 중 개발자 안내서를 번역 기술하도록 하겠습니다.

 

소개

이 개발자 가이드의 목적은 독자가 Apache Nifi 확장 기능을 개발하는 방법을 이해하고 구성 요소를 개발하는 데 필요한 정보를 제공하는 것입니다. 확장 기능을 개발하는 데 사용되는 API에 대한 소개와 설명을 제공합니다.

NiFi 구성 요소

Nifi는 여러 확장 지점을 제공하여 개발자가 애플리케이션에 기능을 추가하여 필요에 맞게 사용할 수 있도록 합니다.

다음은 가장 일반적인 확장 지점들에 대한 설명입니다.

 

프로세서

프로세서 인터페이스는 Nifi가 FlowFiles, 그들의 속성 및 내용에 대한 액세서를 노출하는 메커니즘입니다.

프로세서는 Nifi 데이터 플로우를 구성하는 데 사용 되는 기본 빌딩 블록입니다.

이 인터페이스를 사용하여 다음과 같은 모든 작업을 수행합니다.

  • FlowFiles 생성
  • FlowFiles 내용읽기
  • FlowFiles 내용 쓰기
  • FlowFiles 속성 읽기
  • FlowFiles 속성업데이트
  • 데이터 수집
  • 데이터 방출
  • 데이터 라우팅
  • 데이터 추출
  • 데이터 수정

 

ReportingTask

ReportingTask는 인터페이스는 nifi가 메트릭, 모니터링 정보 및 내부 Nifi 상태를 로그 파일, 이메일 및 원격 웹 서비스와 같은 외부 엔드포인트에 발행할 수 있도록 노출하는 메커니즘입니다

 

ParameterProvider

ParameterProvider 인터페이스는 외부 소스에서 매개변수를 제공할 수 있도록 합니다.

제공된 매개변수는 여전히 매개변수 콘텍스트에 저장되지만, 이 메커니즘을 통해 외부에서 제공하고 관리할 수 있습니다

 

ControllerService

ControllerService는 단일 JVM 내에서 프로세서, 다른 ControllerService, 매개변수 제공자 및 Reporting Tasks 사이에서 공유 상태와 기능을 제공합니다.

예를 들어 매우 큰 데이터 세트를 메모리에 로드하는 경우를 들 수 있습니다.

이 작업을 ControllerService에서 수행함으로써 데이터를 한 번 로드하고 이 서비스를 통해 모든 프로세서에 노출시킬 수 있으므로 다양한 프로세서가 데이터 세트를 자체적으로 로드하지 않아도 됩니다.

 

FlowFilePrioritizer

FlowFilePrioritizer 인터페이스는 큐에 있는 FlowFiles를 우선순위대로 정렬하여 해당 사용사례에 가장 효과적인 순서로 처리할 수 있도록 하는 메커니즘을 제공합니다  

 

AuthorityProvider

AuthorityProvider는 특정 사용자에게 부여해야 할 권한 및 역할 여부를 결정하는 역할을 담당합니다

프로세서 API

프로세서는 NIFI에서 가장 널리 사용되는 구성 요소입니다. 프로세서는 데이터와 속성을 생성, 제거, 수정 또는 검사하는데 액세스할 수 있는 유일한 구성 요소입니다.
 
모든 프로세서는 JAVA의 ServiceLoader 메커니즘을 사용하여 로드되고 인스턴스화됩니다.
따라사 모든 프로세서는 다음 규칙을 준수해야 합니다.
 
  • 프로세서는 기본 생성자를 가져야 합니다
  • 프로세서의 JAR 파일에는 META-INF/services 디렉토리에 org.apache.nifi.processor.Processor라는 이름의 항목이 있어야 합니다. 이는 각 줄에 프로세서의 완전히 지정된 클래스 이름이 포함된 텍스트 파일입니다.

 

Nifi는 고도로 동시성이 높은 프레임워크입니다. 이는 모든 확장 기능이 스레드 안전해야 함을 의미합니다.

Java에서 동시 소프트웨어를 작성하는데 익숙하지 않은 경우 Java 동시성의 원리에 익숙해지는 것이 매우 권장됩니다.

 

이하 내용들은 커스텀 프로세서 작업이 필요한 시점에

내용 이어가도록 하겠습니다.

'빅데이터 > Apache Nifi' 카테고리의 다른 글

Apache nifi 시작 안내서(2)  (1) 2023.12.06
Apache nifi 시작 안내서(1)  (1) 2023.12.05
Apache Nifi SplitJson, JsonPath Expression  (0) 2023.11.10
Apache Nifi Cron Schedule 작성  (0) 2023.11.09
Apache Nifi 프로세서  (0) 2023.09.03
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유