nifi 기본 셋팅

Apache Nifi 셋팅

1. Nifi 홈페이지에서 다운로드 받음

  • https://nifi.apache.org/download.html
  • nifi 실행
    • JAVA_HOME 설정할 것
    • /bin/nifh.sh start
  • default 8080 port
    • 8080이 뜨는지 확인 후 접속 (시간좀 걸림)

2. Cluster 구성

  • Nifi cluster는 zookeeper 기반으로 묶이기 때문에, 정족수 만큼의 cluster를 구성하는 것이 좋음 (3,5,7 …)
  • 필요한 Config 파일 (/conf)
    • nifi.properties
      • nifi 관련된 모든 config
        • nifi.cluster.is.node = true
        • nifi.zookeeper.connect.string=zookeeper:ip,zookeeper:ip,zookeeper:ip …
        • nifi.state.management.embedded.zookeeper.start = true
    • zookeeper.properties
      • 각 노드들의 zookeeper 설정을 위한 config
      • 설정은 zookeeper 설정하는 것과 같음. (server 1,2,3을 잡아 myid 값을 생성하는 것 등등..)
    • bootstarp.conf
      • JVM 관련 config
      • JVM Tuning을 위함
    • 각 노드들은 2181, 2888, 3888, 9999 port를 이용해 서로 통신함
      • 2888, 3888은 zookeeper server 간 통신을 위함
      • 2181은 zookeeper client을 위함
      • 9999는 클러스터간 선거를 위함
  • bin/nifh.sh start && tail -f logs/nifi-app.log
    • 위 명령을 통해 각 노드마다 nifi 실행 및 log를 볼 수 있음 (클러스터 구성하는데 약간 시간이 걸림)

3. Rest API를 통한 Processor group start

  • nifi는 기본적으로 WEB UI를 제공하지만, UI에 접속하지 않고도 커맨드 명령을 통해 프로세스 그룹을 시작/종료할 수 있음
  • 먼저, WEB UI에서 프로세서 그룹의 ID를 찾음
    • ex. 6d6ce61a-0164-1000-9cbf-4f3765db8c5d
  • Rest API 명령을 통해 프로세서 그룹을 시작/종료할 수 있음 (non-ssl)
    • 시작: curl –tlsv1.2 -i -H ‘Content-Type: application/json’ -XPUT -d ‘{“id”:”6d6ce61a-0164-1000-9cbf-4f3765db8c5d”, “state”:”RUNNING”}’ 192.168.56.161:8080/nifi-api/flow/process-groups/6d6ce61a-0164-1000-9cbf-4f3765db8c5d
    • 종료: curl –tlsv1.2 -i -H ‘Content-Type: application/json’ -XPUT -d ‘{“id”:”6d6ce61a-0164-1000-9cbf-4f3765db8c5d”, “state”:”STOPPED”}’ 192.168.56.161:8080/nifi-api/flow/process-groups/6d6ce61a-0164-1000-9cbf-4f3765db8c5d

참고

https://community.hortonworks.com/articles/110096/start-process-group-using-nifi-rest-api.html

Comments