Apache Nifi

[Windows 10] Nifi 설치 및 실행

비번변경 2022. 1. 11. 22:16

Nifi를 다룰 일이 생겨서 테스트하던 서버(AWS EC2/Linux2 AMI)에서 동작시키려고 했는데, 네트워크 관련 설정에 문제가 있는지 연결이 되지 않았다……. 크게 설정 구성할 것 없이 테스트할 목적이기 때문에 로컬 컴퓨터(Window 10)에 설치하여 동작시키려고 한다.

 

따라서 이 글에서는 Windows 10 환경에서 Nifi를 설치하고 동작시키는 방법을 정리해둔다.

 

사전 준비

Nifi는 Java로 개발되었기 때문에, 동작시킬 환경에 Java가 설치되어 있어야 한다. 공식 사이트에 의하면 Java 8 또는 11 설치가 요구된다.

로컬 컴퓨터에는 Oracle JDK 1.8.0_301을 설치했다.

Oracle JDK 1.8.0_301

 

NIfi 설치 방법

1. Nifi 다운로드

공식 사이트로 접속하여 Downloads>Download NiFi로 이동하거나, https://nifi.apache.org/download.html로 접속한다.

Nifi 다운로드

 

최신 릴리즈 중에 가장 최근에 배포된 1.15.2 버전을 사용하려고 한다. Binaries 중 nifi-1.15.2-bin.zip을 클릭하여 다운로드 사이트로 이동한다. 참고로 nifi-toolkit은 TLS 구성 등의 인증서 설정을 위한 도구이다.

nifi-1.15.2-bin.zip

이동한 사이트에서 다운로드 링크를 클릭하여, nifi를 다운로드한다.

다운로드 링크를 클릭

 

+ 이전 버전 설치가 필요한 경우

https://archive.apache.org/dist/nifi/

위의 링크에서 원하는 버전을 찾을 수 있을 것 같다.

 

 

2. 압축 해제

적당히 원하는 경로에 압축 해제한다.

압축 해제

설치 자체는 이것으로 끝이다.

 

 

 

Nifi 실행

설치한 nifi가 정상적으로 동작하는지 확인해본다.

 

1. run-nifi 실행

달리 구성할 게 없다면, NIFI_HOME/bin 경로 아래의 run-nifi.bat 파일을 실행한다.

run-nifi 실행

forground로 실행되기 때문에 아래와 같이 CMD 창이 활성화되면서 유지될 것이다. 하단에 INFO [main] org.apache.nifi.bootstrap.Command Launched Apache NiFi with Process ID 14268 와 같은 문구가 뜨면 정상적으로 동작하는 것이라고 한다.

forground 실행

동작 확인 후, Nifi 접속이 가능해질 때까지 약간의 대기시간이 필요하다.

 

2. Nifi 접속

웹 브라우저에 기본 접속 URL (https://127.0.0.1:8443/nifi)을 입력한다.

Nifi 접속

접속 URL은 NIFI_HOME/logs/nifi-app.log 파일의 하단에서 찾을 수 있다.

2021-12-30 19:57:17,004 INFO [main] org.apache.nifi.web.server.JettyServer NiFi has started. The UI is available at the following URLs:
2021-12-30 19:57:17,004 INFO [main] org.apache.nifi.web.server.JettyServer https://127.0.0.1:8443/nifi

 

2. Nifi Log In

Nifi는 기본적으로 사용자 이름과 비밀번호를 이용하여 사용자를 인증하는 Single User Login Identity Provider를 사용하도록 구성되어 있다. 이 설정은 NIFI_HOME/conf/nifi.properties 파일의 nifi.security.user.login.identity.provider 값에서 찾을 수 있다.

# security properties #
nifi.sensitive.props.key=pb5DqT0Rf/K9NMGqWAuZyHUbZfiFD14m
nifi.sensitive.props.key.protected=
nifi.sensitive.props.algorithm=NIFI_PBKDF2_AES_GCM_256
nifi.sensitive.props.additional.keys=

nifi.security.autoreload.enabled=false
nifi.security.autoreload.interval=10 secs
nifi.security.keystore=./conf/keystore.p12
nifi.security.keystoreType=PKCS12
nifi.security.keystorePasswd=caabcccbefb49b3065c8a771634ead60
nifi.security.keyPasswd=caabcccbefb49b3065c8a771634ead60
nifi.security.truststore=./conf/truststore.p12
nifi.security.truststoreType=PKCS12
nifi.security.truststorePasswd=fb3d6f6b8b84427aff9f85d10d83bc28
nifi.security.user.authorizer=single-user-authorizer
nifi.security.allow.anonymous.authentication=false
nifi.security.user.login.identity.provider=single-user-provider
nifi.security.user.jws.key.rotation.period=PT1H
nifi.security.ocsp.responder.url=
nifi.security.ocsp.responder.certificate=

 

Single User Login Identity Provider는 사용자 이름과 비밀번호의 자동 생성을 지원하며, 그 설정 파일은 NIFI_HOME/conf/login-identity-providers.xml에 해당한다.

login-identity-providers.xml 내용에 따르면, Single User Login Identity Provider는 사용자 이름과 비밀번호 값이 비어있으면 자동생성한 사용자 이름과 비밀번호를 로그 메세지(NIFI_HOME/logs/nifi-app.log)로 기록한다.

<!--
        Single User Login Identity Provider supporting automated generation of Username and Password

        The provider will write the following log messages when 'Username' and 'Password' are empty:

        Generated Username [USERNAME]
        Generated Password [PASSWORD]

        The 'Username' will be a random UUID and the 'Password' will be stored using bcrypt hashing
    -->

 

nifi-app.log에서 관련 메세지를 찾아 사용자 이름과 비밀번호를 획득한 후, 로그인을 시도한다.

2021-12-29 00:13:01,453 INFO [main] o.a.n.a.s.u.SingleUserLoginIdentityProvider 

Generated Username [2b159054-7152-4719-ae7f-ac6f207decdd]
Generated Password [YCqkbz7oDvUT23uIGqQWGof68rBFCtD8]

2021-12-29 00:13:01,453 INFO [main] o.a.n.a.s.u.SingleUserLoginIdentityProvider Run the following command to change credentials: nifi.sh set-single-user-credentials USERNAME PASSWORD
2021-12-29 00:13:01,688 INFO [main] o.a.n.a.s.u.SingleUserLoginIdentityProvider Updating Login Identity Providers Configuration [.\conf\login-identity-providers.xml]

Nifi Log In

 

정상적으로 로그인되는 것을 알 수 있다.

로그인 성공

 

Nifi 종료

run-nifi.bat으로 활성화된 CMD 창에서 ctrl+c를 두 번 정도 입력 후, 잠시 기다리면 아래와 같은 안내 문구가 나타난다.

Nifi 종료

Y를 눌러 종료한다.

 


참고 문서

https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#how-to-install-and-start-nifi