Apache Nifi 알아보기 그리고 Windows 로컬 구축기

유아 Yooa·2024년 7월 5일
1

미숙한 삽질

목록 보기
6/6
post-thumbnail
post-custom-banner

Overview

사내 데이터 시각화 Dash Board 운영건을 맡게 되며, Apache NiFi를 활용하여 데이터 마트가 구축된 환경을 접하게 되었다. Nifi를 통해 ETL에 대해 알게 되었으며, 첫 세팅의 발걸음을 통해 뚝딱임을 최소화시켜보자.

What is Apache NiFi?

Put simply, NiFi was built to automate the flow of data between systems.
While the term 'dataflow' is used in a variety of contexts, we use it here to mean the automated and managed flow of information between systems.
(* ref. Nifi Official Doc Ver2. )

즉, 데이터를 가져오고 처리하여 적재하기 위한 ETL Tool의 일종이다.

여담으로, 카카오세너느 Kafka에서 발생하는 모든 로그에 대하여 NIFI를 통한 로그 파서 과정을 거쳐 사내 Elasticsearch에 메시지를 저장한다고.

Nifi Version : https://archive.apache.org/dist/nifi/1.15.3/

HOME : C:\Nifi\nifi-1.15.3


C:\Nifi\nifi-1.15.3\bin 경로 아래 run-nifi.bat 실행

foreground로 실행되기에 해당 cmd창 출력

(background 실행하려면 nifi.sh를 git bash로 start sh nifi.sh start )

Nifi 접속 url : https://127.0.0.1:8443/nifi

실행 에러

bash로 실행 시 아래와 같은 에러 발생했었음
Error: Could not find or load main class org.apache.nifi.bootstrap.RunNiFi

https://stackoverflow.com/questions/67771427/cant-start-nifi-in-win10

위 링크 참고하여 nifi 설치 디렉토리 마우스 우클릭 > 속성 > 보안 에서 jeongmin yu 권한을 모든 권한으로 편집

Nifi 로그인

HOME\conf\nifi.properties 파일의 nifi.security.user.login.identify.provider 값을 보면

nifi.security.user.login.identity.provider=single-user-provider

기본적으로 사용자 이름과 비밀번호를 이용하여 사용자를 인증하는 Single User Login Identify Provider를 사용하도록 구성된 것을 알 수 있다.

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

<loginIdentityProviders>
<!-- 
        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
     -->
<provider>
<identifier>single-user-provider</identifier>
<class>org.apache.nifi.authentication.single.user.SingleUserLoginIdentityProvider</class>
<property name="Username">8dbf8197-0037-4991-b09c-b14addbca92b</property>
<property name="Password">$2b$12$lucr8uWNAlkrv0ZhD3TgDuqh9gUoBKuBybNuj2hZvlp/EMrl58SyC</property>
</provider>

자동생성한 Username과 Password를 확인 가능한데, 보면 password는 해싱되어 있다.

로그 메시지를 통해 비밀번호를 확인할 수 있다.

로그 메시지 경로 : HOME/logs/nifi-app.log

2024-06-11 16:45:12,852 INFO [main] o.a.n.a.s.u.SingleUserLoginIdentityProvider 

Generated Username [8dbf8197-0037-4991-b09c-b14addbca92b]
Generated Password [GQOcK4tZPfyEKfG+zqRVDBHjuGNaO++f]

해당 계정으로 로그인을 하면 정상 접속된다.

종료

foreground로 실행되는 cmd에 ctrl+c를 두 번 정도 입력 후 잠시 기다리면 종료하겠냐는 안내 문구 출력

profile
기록이 주는 즐거움
post-custom-banner

0개의 댓글