클러스터 구성

[NiFi][Ubuntu] Apache NiFi cluster 구성하기

목차
  1. 1. 시작
  2. 2. NiFi
  3. 3. 목표
  4. 4. 주의
  5. 5. 설치
  6. 5.1. NiFi 다운로드
  7. 6. 설정
  8. 6.1. nifi.properties 설정
  9. 6.2. state-management.xml 설정
  10. 7. 기타 설정
  11. 7.1. `bootstrap.conf`
  12. 7.2. `nifi.properties`
  13. 8. 오류
  14. 8.1. “The keystore properties are not valid”
  15. 8.2. “nifi java.net.SocketTimeoutException: timeout”
  16. 9. 결과
반응형

1. 시작

아래 선행작업이 필요합니다.(Zookeeper 설치)

https://hbcha0916.tistory.com/63

 

[zookeeper][Ubuntu] Apache zookeeper cluster 구성하기

1. 시작 업무에서 이중화 요구사항에 따라 규모 있는 cluster를 구성해야 한다. 추후 업무에 내가 정리하고 참고하기 위해 글을 작성한다.(망각 방지) 2. zookeeper Apache zookeeper 는 분산시스템을 위한

hbcha0916.tistory.com

NiFi를 압축 해제한 디렉토리를 `$NIFI_HOME` 라고 칭하겠다.

2. NiFi

  • Apache NiFi 는 시스템 간의 데이터 흐름을 자동화하기 위해 만들어졌다.
  • Java로 만든 프로그램이다.(JVM 위에서 실행한다.)

3. 목표

클러스터 3개를 구성하여 장애발생에도 서비스가 유지하기 위함이다.

4. 주의

NiFi 내에 자체적인 zookeeper(embedded zookeeper)가 존재하는데 해당 내용은 embedded zookeeper를 사용하지 않는다. 이말은 즉, zookeeper 애플리케이션을 따로 설치하지 않아도 NiFi끼리 클러스터를 구성할 수도 있다는 이야기이다.

검색 능력이 부족하여 embedded zookeeper와 zookeeper application을 혼동하여 삽질을 했었다.

`conf/zookeeper.properties` 파일을 설정해줄 필요가 없다.

5. 설치

5.1. NiFi 다운로드

아래 사이트에서 최신버전 혹은 버전의 Binaries(Apache NiFi Binary x.x.x) 를 클릭하여 사이트로 이동한 후 "HTTP" 부분에 있는 "https://dlcdn.apache.org/nifi/x.x.x/nifi-x.x.x-bin.zip" 링크의 주소를 복사하여 설치할 디렉토리에서 `wget`한다. 

https://nifi.apache.org/download.html

 

Apache NiFi Downloads

Copyright © 2023 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, NiFi, Apache NiFi and the project logo are trademarks of The Apache Software Foundation.

nifi.apache.org

1.23.0 버전 기준

wget https://dlcdn.apache.org/nifi/1.23.0/nifi-1.23.0-bin.zip

unzip nifi-1.23.0-bin.zip

6. 설정

6.1. nifi.properties 설정

`$NIFI_HOME/conf/nifi.properties` 에서 nifi의 속성을 설정한다.

아래 내용을 수정/추가한다.

nifi.state.management.embedded.zookeeper.start=false
# nifi 에 내장된 embeded zookeeper를 사용하지 않는다.

nifi.web.http.host=node1
# 클러스터 별로 다르게 설정

nifi.web.http.port=18080 
# NiFi WEB 포트설정(zookeeper 포트와 겹치지 않게 사용한다.)
# https를 사용하면 해당 설정은 무시한다.

nifi.cluster.is.node=true
# 이 nifi는 노드로 사용되냐 = true

nifi.cluster.node.address=node1
# 클러스터 별로 다르게 설정(자신의 ip host 를 적는다.)

nifi.cluster.node.protocol.port=5882
# 클러스터 끼리 통신할 포트

nifi.zookeeper.connect.string=node1:2181,node2:2181,node3:2181
# 연동할 zookeeper서버:port 들을 넣어준다.

6.1.1. 참고

node1, node2, node3은 이전 내용에서 `/etc/hosts` 파일을 수정하여 네임서버를 설정해 주었다.

https://hbcha0916.tistory.com/63#4.2.%20%EB%84%A4%EC%9E%84%20%EC%84%9C%EB%B2%84%20%EB%A7%A4%ED%95%91%20%60%2Fetc%2Fhosts%60-1

 

[zookeeper][Ubuntu] Apache zookeeper cluster 구성하기

1. 시작 업무에서 이중화 요구사항에 따라 규모 있는 cluster를 구성해야 한다. 추후 업무에 내가 정리하고 참고하기 위해 글을 작성한다.(망각 방지) 2. zookeeper Apache zookeeper 는 분산시스템을 위한

hbcha0916.tistory.com

6.2. state-management.xml 설정

`$NIFI_HOME/conf/state-management.xml` 에서 zookeeper연동 작업을 해준다.

아래 내용을 수정한다.

<cluster-provider>
        <id>zk-provider</id>
        <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
        <property name="Connect String">node1:2181,node2:2181,node3:2181</property>
        <property name="Root Node">/nifi</property>
        <property name="Session Timeout">10 seconds</property>
        <property name="Access Control">Open</property>
</cluster-provider>

`<property name="Connect String">` 태그 안에 zookeeper의 주소를 적어준다.

7. 기타 설정

아래 설정은 서버의 사양에 따라 설정한다.

7.1. `bootstrap.conf`

자바 관련 설정

7.1.1. NiFi Java Heap 사이즈 변경

java.arg.2=-Xms4096m
java.arg.3=-Xmx10240m

`-Xms` : 기본 Heap 할당용량 (기본 : 512m)

`-Xmx` : 최대 Heap 할당용량 (기본 : 512m)

7.1.2. NiFi TimeZone 설정

NiFi 시간이 UTC로 나올경우 설정법

java.arg.8=-Duser.timezone=Asia/Seoul

7.2. `nifi.properties`

7.2.1. NiFi Queue Swap 개수설정

NiFi Queue에 FlowFile이 일정 개수 이상 쌓이면 보조기억장치로 스왑한다.(기본 20000(개))

nifi.queue.swap.threshold=50000

8. 오류

8.1. “The keystore properties are not valid”

[nifi.properties] 아래 구문들을 공백으로 설정한다.

nifi.security.keystore=
nifi.security.keystoreType=
nifi.security.keystorePasswd=
nifi.security.keyPasswd=
nifi.security.truststore=
nifi.security.truststoreType=
nifi.security.truststorePasswd=

8.2. “nifi java.net.SocketTimeoutException: timeout”

NiFi WEB으로 접속할 때 기본값이 5초로 설정되어있어, 네트워크가 조금 느리면 바로 Timeout을 뿌려버린다. 시간을 늘려주자.

[nifi.properties] 아래 구문들을 30초이상으로 변경한다.

nifi.cluster.node.connection.timeout = 30 sec
nifi.cluster.node.read.timeout = 30 sec

9. 결과

nifi 실행

$NIFI_HOME/bin/nifi.sh start

반응형
저작자표시 변경금지 (새창열림)

'클러스터 구성' 카테고리의 다른 글

[Elasticsearch][Ubuntu] Elasticsearch 구성하기  (0) 2023.08.13
[kafka][Ubuntu][NiFi] Apache Kafka cluster 구성하기  (0) 2023.08.06
[zookeeper][Ubuntu] Apache zookeeper cluster 구성하기  (0) 2023.08.01
  1. 1. 시작
  2. 2. NiFi
  3. 3. 목표
  4. 4. 주의
  5. 5. 설치
  6. 5.1. NiFi 다운로드
  7. 6. 설정
  8. 6.1. nifi.properties 설정
  9. 6.2. state-management.xml 설정
  10. 7. 기타 설정
  11. 7.1. `bootstrap.conf`
  12. 7.2. `nifi.properties`
  13. 8. 오류
  14. 8.1. “The keystore properties are not valid”
  15. 8.2. “nifi java.net.SocketTimeoutException: timeout”
  16. 9. 결과
'클러스터 구성' 카테고리의 다른 글
  • [Elasticsearch][Ubuntu] Elasticsearch 구성하기
  • [kafka][Ubuntu][NiFi] Apache Kafka cluster 구성하기
  • [zookeeper][Ubuntu] Apache zookeeper cluster 구성하기
항상 빌드중
항상 빌드중
망각을 지연시키는 블로그
언제나 미완성망각을 지연시키는 블로그
항상 빌드중
언제나 미완성
항상 빌드중
전체
오늘
어제
  • 분류 전체보기 (78)
    • Docker (4)
    • Linux | PowerShell (10)
      • [WSL][CUDA] TensorFlow 설치 과.. (4)
    • Kafka (3)
    • NiFi (13)
      • MiNiFi (4)
      • ExecuteScript (1)
    • RDBMS (3)
      • PostgreSQL (2)
      • Tibero (1)
    • NoSQL (1)
      • ElasticSearch(OpenSearch) (1)
    • 프로그래밍 (13)
      • JAVA (1)
      • WEB (9)
      • Python (3)
    • 잡것 (2)
      • 해킨토시 (1)
      • WSL (3)
      • VScode (3)
      • STT (3)
      • DIY (1)
    • 클러스터 구성 (4)
    • 정처기 (9)
      • 오답노트 (0)
      • 파이널 (4)
      • 벼락치기 (5)
    • 자동차 (5)
      • Android올인원 (2)
      • TOYOTA Prius XW50 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • GitHub
반응형

공지사항

인기 글

태그

  • 프리우스4 와이드미러
  • MiNiFi 사용방법
  • NiFi Python
  • 마크다운 메모장
  • x600 usb4
  • nifi
  • 프리우스4 옵틱글래스
  • 마크다운 공유
  • 프리우스 옵틱글래스
  • markdownserver
  • 프리우스4
  • whisper설치과정
  • whisper설치 및 실행
  • prius4 side-view mirror
  • 프리우스4 사이드미러
  • 텐서플로우
  • WSL
  • 프리우스4 사이드미러 diy
  • deskmini usb4
  • jupiter x600 온도

최근 댓글

최근 글

hELLO · Designed By 정상우.
항상 빌드중
[NiFi][Ubuntu] Apache NiFi cluster 구성하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.