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
- nifi 관련된 모든 config
- 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는 클러스터간 선거를 위함
- nifi.properties
- 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