Elasticsearch Install

ElasticSearch & Kibana 설치 in WSL2

ElasticSearch & Kibana 설치 in WSL2 - Data Science | DSChloe

Step 1. 사전 필수 패키지 설치

0.우선 시스템 패키지를 업데이트 하고, HTTPS와 관련된 패키지를 설치한다.

Windows Terminal → wsl bash

또는

Ubuntu → ..cd → ..cd

sudo apt-get update && sudo apt-get upgrade

sudo apt update

sudo apt install apt-transport-https

  1. 자바를 설치한다.
  • 이미 설치가 되어 있다면 버전만 확인한다.

sudo apt install openjdk-11-jdk

java -version

  1. 자바 환경 변수를 설정하기 위해 아래와 같이 에디터를 입력한다.

sudo vi /etc/environment

→ (그리고 다음내용을 추가한다.)

→ 인서트 모드에서 JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

→ esc → :wq 하여 저장하고 나간다.

• 환경변수를 업데이트 한다.

• 그리고 실제 경로가 나오는지 확인한다.

source /etc/environment

echo $JAVA_HOME

→ /usr/lib/jvm/java-11-openjdk-amd64 가 출력되면 성공.

Step 2. ElasticSearch 설치

• GPG Keys를 확인하여 설치를 진행한다.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

• 라이브러리를 아래와 같이 추가한다.

sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'

• 이제 elasticsearch를 설치한다.

sudo apt-get update

sudo apt-get install elasticsearch

Step 3. Elasticsearch 서비스 시작

• 이번에는 elasticsearch 서비스를 시작한다.

sudo systemctl start elasticsearch

에러 발생 :

System has not been booted with systemd as init system (PID 1). Can’t operate.
Failed to connect to bus: Host is down

에러 해결 :

boot - 시스템이 init system(PID 1)으로 systemd로 부팅되지 않았습니다. 작동 할 수 없음 - 우분투에게 물어보십시오. (askubuntu.com)

sudo -b unshare --pid --fork --mount-proc /lib/systemd/systemd --system-unit=basic.target

sudo -E nsenter --all -t $(pgrep -xo systemd) runuser -P -l $USER -c "exec $SHELL"

• 서비스가 가능하도록 한다.

• 그리고 서비스를 시작한다.

sudo systemctl enable elasticsearch

sudo systemctl start elasticsearch

• 실제 서비스가 작동하는지 확인한다.

curl -X GET "localhost:9200/"

→ 주소창에 입력 : localhost:9200/

→ windows Terminal과 같은 내용이 출력되면 성공

Step 4. Kibana 설치 및 서비스 시작

• 우선 kibana를 설치한다.

• 그리고 서비스를 활성화한다.

sudo apt-get install kibana

sudo systemctl enable kibana

• 서비스를 시작하고, 확인해본다

sudo systemctl start kibana

sudo systemctl status kibana

Step 5. Kibana WebUI 확인

http://localhost:5601/ 에서 확인해본다.

[Reference]

Apache Nifi Install

Apache airflow

Apache-Airflow in windows 설치

• Windows WSL2에서 airflow를 설치한다.

Step 1. Install pip on WSL

• c드라이브에 들어간다.

관리자 권한으로 실행 : Ubuntu

cd..

cd..

cd mnt/c

• 폴더를 만든다

mkdir airflow-test

ls

cd airflow-test/

• pip를 설치한다.

sudo apt-get update && sudo apt-get upgrade

sudo apt install python3-pip

Step 2. Install virtualenv package

• virtualenv 라이브러리를 설치한다.

sudo pip3 install virtualenv

Step 3. Create a virtual environment

• 이제 가상환경을 생성한다.

virtualenv venv

• 가상환경에 접속을 한다.

→ airflowtest 경로에서 해야 한다.

source venv/bin/activate

→ 경로 확인

pwd

• 이번에는 .bashrc 파일을 수정한다.

• 파일을 열고, 맨 밑줄에 다음과 같은 코드를 추가한다.

vi ~/.bashrc

→ 내용 추가 : export AIRFLOW_HOME=/mnt/c/airflow-test

→ ESC → :wq 하여 저장

• 수정된 코드를 업데이트 하기 위해서는 아래와 같이 반영한다.

source ~/.bashrc

• 실제로 코드가 반영되었는지 확인하기 위해서는 다음과 같이 확인해본다.

• 다시 가상환경에 접속하고 수행

source venv/bin/activate

echo $AIRFLOW_HOME

→ /mnt/c/airflow-test 출력되면 성공.

Step 4. Apache Airflow 설치

• PostgreSQL, Slack, Celery 패키지를 동시에 설치하는 코드를 작성한다.

sudo apt-get update && sudo apt-get upgrade

pip3 install 'apache-airflow[postgres, slack, celery]'

• airflow 실행을 위해 DB 초기화를 해줘야 한다.

airflow db init

• 실제로 잘 구현이 되었는지 확인하기 위해 webserver를 실행한다

airflow webserver -p 8081

→ port 번호 8081을 뜻한다.

• 그리고, 해당 링크 http://localhost:8081/login/ 에 접속하면 아래와 같은 화면이 나타난다.

Untitled

• 그런데, 여기에서 문제는 username을 생성하지 않았다. 따라서, username을 추가하도록 한다

→ ctrl + c 로 빠져나온다.

airflow users create --username airflow --password airflow --firstname evan --lastname airflow --role Admin --email your_email@some.com

• 다시 웹서버 실행

airflow webserver -p 8081

• 해당 링크 http://localhost:8081/login/ 에 접속

• 다음 정보로 로그인한다

→ id : airflow

password : airflow

→ 다음 화면이 나오면 성공.

Untitled

설정완료 후에 가상환경 키는 법

ubuntu

→ cd .. → cd .. → cd mnt/c → cd airflow-test

source venv/bin/activate

Airflow 재설치 및 데이터 파이프라인 구축

Apache Nifi Install

Apache NiFi

Apache NiFi 설치와 설정 in WSL2 - Data Science | DSChloe

설치

  • wsl2에서 JAVA 설치 한다.

관리자 권한으로 실행 : Ubuntu

lscd ..lscd ..ls // ls 하여 파일 출력 될 때까지

java --version

→ 설치 안 되어 있을 시 : sudo apt-get update && sudo apt-get upgrade

→ 설치 안 되어 있을 시 : sudo apt install openjdk-11-jdk

vi ~/.bash_profile

→ vi 편집기로 이동된다.

→ 내용 추가 : export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

→ esc + :wq 하여 저장

  • source 사용하여 상태 저장

source ~/.bash_profile

echo $JAVA_HOME

→ 다음 내용 출력 시 성공 : /usr/lib/jvm/java-11-openjdk-amd64

  • curl을 이용해서 NiFi를 현재 경로에 내려받는다. 오래 걸린다.

sudo wget https://downloads.apache.org/nifi/1.16.0/nifi-1.16.0-bin.tar.gz

ls

→ 현재 있는 기본 경로에 nifi 가 출력 됨을 알 수 있다.

Untitled

cp nifi-1.16.0-bin.tar.gz mnt/c/nifi-1.16.0-bin.tar.gz

cd mnt

cd c

ls

→ /mnt/c 경로에 nifi 가 생겼다.

Untitled

  • .tar.gz 파일의 압축을 푼다

sudo tar xvaf nifi 까지 타이핑하고 Tab 하여 다음 코드 작성

sudo tar xvzf nifi-1.16.0-bin.tar.gz

  • 압축파일을 푼 다음에는 cd nifi-1.16.0 폴더에 접속을 한다.

→ Tab 이용하여 다음 코드 작성하고 실행

cd nifi-1.16.0/bin

  • ls를 실행해서 nifi-env.sh 파일이 있는지 확인하고 있다면, vi 에디터로 연다.
  • bash_profile에서 한 것처럼 동일하게 자바 환경변수를 잡아준다

sudo vi nifi-env.sh

→ 내용 추가 : export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

→ esc + :wq 하여 저장하고 나온다.

sudo ./nifi.sh start

→ 몇 분간 새로고침한다. ( 계속 안될 경우 : stop하고 기록을 지운 다음 다시 start)

→ 비공개 화면 … 이라는 문구가 출력된다.

→ ‘고급’ 선택

→ 나타나는 주소를 클릭하여 들어간다.

→ 다음 화면이 출력된다.

Untitled

  • 종료

/mnt/c/nifi-1.16.0$ 상태에서 다음 명령 실행해야 한다.

cd ..

sudo ./bin/nifi.sh stop

  • 로그인 준비.
  • 아이디와 비밀번호를 설정한다. ( *비밀번호는 최소 13자리)

sudo ./bin/nifi.sh set-single-user-credentials human 1234567890123

  • 그리고, nifi-env.sh 파일을 실행
  • 단, /bin 경로에서 한다.

cd bin/

sudo ./nifi.sh start

→ 몇 분간 새로고침한다.

→ 다음 정보로 로그인

id : human

password : 1234567890123

→ 다음 화면이 출력되면 성공.

Untitled

  • 세팅은 끝났으니 일단 종료시켜놓자.
  • 종료
  • /mnt/c/nifi-1.16.0$ 상태에서 다음 명령 실행해야 한다.

cd ..

sudo ./bin/nifi.sh stop

기록 지우는 법

ubuntu에서 다음 명령 실행

cd..

cd..

cd mnt/c

ls

cd nifi-1/16/0/

ls

cd logs

ls

sudo rm -rf *

ls

→ 삭제 되어 아무것도 출력되지 않는다.

NiFi 사용법

  • Nifi 사용법을 익혀보자
  • 실무 예제로 배우는 데이터 공학 19p 부터 따라해본다.

메뉴바에서 process를 드래그하여 캔버스에 놓는다.

→ 다음 그림의 우측 상단에서 검색한다.

→ 검색 : GenerateFlowFile

→ ADD 버튼 클릭

Untitled

→ 같은 방법으로 검색

→ 검색 : putfile

→ ADD

나타난 박스를 우클릭 → configure

→ properties

→ field 를 설정할 수 있다.

설정 후에는 박스끼리 연결할 수 있다.

→ 박스 하나의 중앙을 드래그하여 다른 박스에 놓는다.

→ 연결된다.

→ 이 상태에서 GenerateFlowFile에서 파일을 생성하여 PutFile에 옮길 수 있다.

Untitled

  • Reference : 실무 예제로 배우는 데이터 공학

WSL2 install

WSL2 and Linux

다음 링크 참고 :

Microsoft Store → windows terminal 설치

→ windows powershell 관리자 권한으로 설치

[Windows 10] WSL2 설치 및 사용법 - LainyZine 내용 참고하여 명령.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

→ 재부팅

→ wsl2 Linux 커널 업데이트 패키지 설치 ( 위 링크 참고)

설치 실패 : ( This update only applies to machines with the windows subsystem for Linux)

   ㄴ [https://goaloflife.tistory.com/192](https://goaloflife.tistory.com/192) 로 해결해본다.

→ windows Terminal

wsl --set-default-version 2

→ Microsoft Store → Ubuntu 설치

→ Ubuntu → 설치되기까지 기다린다

→ 이름 / 패스워드 입력

( 이름 : kmk3593 / password : 2016***** )

→ windows terminal

wsl -l -v

→ Ubuntu Running 2 가 출력되면 성공.

Linux Shell 프롬프트

windows terminal

wsl bash

→ Bash 셸이 실행됨. 프롬프트 형태가 바뀌면 성공

저자 주: 여기서부터 WSL2 리눅스 셸 프롬프트

→ 즉, Windows 10 메인 디스크가 리눅스와 연결되어있으며,

WSL2 Linux에서 Windows의 파일을 사용하는 것도 가능한 상태.

setting 순서

  • Nifi → Airflow → Elasticsearch → postgreSQL → VSCord 순으로 세팅을 진행했다.
  1. Apache NiFi 설치와 설정 in WSL2 - Data Science | DSChloe
  2. Setting up Apache-Airflow in Windows using WSL2 - Data Science | DSChloe
  3. ElasticSearch & Kibana 설치 in WSL2 - Data Science | DSChloe
  4. PostgreSQL Installation on WSL2 and Windows - Data Science | DSChloe
  5. VSCode Remote WLS 연동 - Data Science | DSChloe