Heroku 배포

in Heroku

개요

  • Heroku를 이용하여 웹 사이트에 내 프로젝트 소스를 배포를 하는 방법을 설명한다.

Heroku란

  • Java, Node.js, Python 등 여러 언어를 지원하는 Paas (Platform-as-a-service) 클라우드 서비스로 간단한 클라우드 기반의 어플리케이션 플랫폼이다.
  • Paas (Platform-as-a-service)란
    • 서비스로서의 플랫폼(Platform-as-a-service, PaaS)은 하드웨어 및 애플리케이션 소프트웨어 플랫폼이 제3사를 통해 제공되는 클라우드 컴퓨팅의
       한 형식입니다. 주로 개발자와 프로그래머가 사용하는 PaaS는 보통 해당 프로세스와 관련된 인프라
       또는 플랫폼을 구축하고 유지관리할 필요 없이 자체 애플리케이션을 개발, 실행 및 관리
       할 수 있도록 해줍니다.

Step 1. Heroku 가입 및 App 생성


  • 아래 사진 처럼 두개의 탭이 보이는데 Create a new app 탭을 클릭한다.

    png


  • App name 설정 및 region을 United States로 설정한다.(무료 이용을 하려면 지역을 United States로 해야한다.)

    png


Step 2. Heroku CLI 설치

  • 이제 Heroku에 내 프로젝트 소스를 올리기 위해 Heroku CLI를 아래 링크를 통해 설치해줘야 한다. (사용 중인 OS에 맞게 다운로드 해서 설치하면 된다)

  • 관리자 권한으로 실행하여 아래 체크 박스를 모두 체크한 뒤 next를 눌러 다운로드 받아준다.

    png


  • 관리자 프롬프트(CMD)나 각 터미널을 실행하여 설치가 잘 되었는지 확인한다. ( 필자는 VS Code를 이용하여 Gitbash 터미널을 사용하였다.)
    1
    heroku --version
    png

Step 3 Github Repository 생성

  • Github 페이지로 들어가 Repository를 생성하여 이름을 Heroku에서 생성한 App 이름과 같이 작성한다. png
    png

Step 4. Heroku 로그인 및 배포

  • 위에서 실행했던 터미널에 아래 코드를 입력하여 Heroku 로그인을 진행한다.
    1
    $ heroku login

    png
    png

  • 경로를 생성한 프로젝트의 폴더로 이동한 뒤 다음 명령어를 통해 git repository를 연결한다.

    1
    2
    $ git init
    $ heroku git:remote -a <app-name>

    png


  • 아래와 같이 Method Not Allowed 가 나오면 정상이다

    png


  • git 사용법과 동일하게 프로젝트를 addcommitpush 한다.

    1
    2
    3
    4
    $ git add .
    $ git commit -am "first commit"
    $ git push heroku master
    # git push 에서 에러가 발생한다면 git push heroku HEAD:master로 하길

  • Verifying deploy... done. 메세지가 나오면 정상적으로 Git 연동 완료

png


Step 5. 웹상 확인

Comment and share


개요

  • Git hub의 새로운 Repository를 만들어 팀원들과 함께 관리를 할 수 있게 권한을 주는 과정을 설명한다.

Step 1. Repositoy 생성

  • Git hub 홈페이지 repository를 생성해준다.

    • 아래 체크 박스에 있는 항목들은 필요에 따라서 선택적으로 체크하면 된다.

    png


Step 2. 폴더에 Git 연동하기

  • 아래 사진의 네모 상자의 코드를 입력하면 연동이 완료된다.( 기존 git hub 새로운 repository연동과 같다)

    png

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    echo "# Kakaotalk_chatbot_finance_" >> README.md       # READ.ME 파일에 " " 부분이 입력이 된다.
    git init
    git add README.md
    git commit -m "first commit"
    git branch -M main
    git remote add origin https://github.com/AHNDUHONG/Kakaotalk_chatbot_finance_.git
    git push -u origin main # git push <remote> <branch>로 한번 저장하여 베포한 뒤 git push만으로 베포 가능

    # 이 코드는 필자가 만든 Repository에 맞게 생성된 코드들이기 때문에 각자 Repository에 맞게
    # 수정하길 바란다.

  • 필자는 repository에 이미 만들어진 폴더가 있기 때문에 git push를 입력 했을때 오류가 발생했다.

    png

    png


Git 연동 과정 중 오류 발생 및 해결

  • 위의 오류는 내 컴퓨터 저장소의 폴더에 없는 파일이 이미 내 Github Repository에 기록 되어있기때문에 생기는 것 이므로 git pull로 파일을 가져오기로 한다.

    • git remote -v 로 원격 저장소 이름을 확인 한다.

    png


    • 위 사진으로 확인한 origin 저장소를 main branch로 pull을 하기 위해 git pull origin main 작성

      png


    • fatal: refusing to merge unrelated histories 오류가 발생하여 git pull origin 브런치명 --allow-unrelated-histories 을 사용하여 오류 해결

      • --allow-unrelated-histories 이 명령 옵션은 이미 존재하는 두 프로젝트의 기록(history)을 저장하는 드문 상황에 사용된다고 한다. 즉, git에서는 서로 관련 기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이것을 허용해 주는 것이다.

      png


  • 아래와 같이 bash 폴더가 생성되면 성공적으로 파일을 Git에 연동한 것이다.

    png


Step 3. Git Contributors 추가하기 (다른 사람에게 Repository 수정 및 생성 권한 주기)

  • Github 홈페이지로 돌아와서 각자가 만든 Repository에 접속하여 Settings > Collaborators > Manage access 경로로 들어가 Add people로 권한을 줄 사람을 추가한다.

    png


  • Github USERNAME, FULL NAME, Email 으로 추가가 가능하다.

    png


  • 추가한 사람의 허용을 받으면 Pending Invite 가 사라진다.

    png


Step 4. Branch 만들기

  • Branch 확인을 한다

    • 필자가 현재 사용하고 있는 branch는 master다.
    • 아래 사진은 모든 branch를 *로 나타내고 그 중 현재 사용중인 branch를 초록색으로 보여준다.

    png


  • Branch 만들기

    1
    git branch (`원하는 branch명`)
  • Branch 확인

    1
    git branch
  • 필자는 팀원의 개개인의 이니셜로 Branch를 생성했다.

    png


  • 개개인의 Branch로 접속하는 코드는 아래와 같다

    1
    git checkout <Branch명>

Step 5. Branch 상태에서 push, pull 하기

  • Push
    • 임의로 README에 데이터 추가 후 add, commit, push 하기

      이때 add, commit은 동일한 방식을 사용하고 push는 맨 처음 할 때는 아래와 같은 코드를 사용 해주어야 그 뒤부터는 간단하게 push로 사용이 가능하다.

      1
      git push --set-upstream origin <branch명>
    • branch를 만든 후 첫 push를 할 경우

      코드 수정

      1
      2
      3
      4
      5
      6
      7
      # 1. add
      git add .
      # 2. commit
      git commit -m "commit할 내용"
      # 3. push
      git push --set-upstream origin <Branch명>

    • 아래 사진과 같이 생성한 Branch로 push되었음을 확인할 수 있다.

      png

참고

  • git branch를 활용하여 팀 프로젝트를 진행하려면 모든 팀원이 git의 개념에 대해 정확히 알고 있어야 하므로 숙련자가 아닌 사용자가 사용하기엔 적합하지 않습니다(오류가 발생했을 시 해결하는 과정 rollback 등 복잡한 과정이 생겨 프로젝트에 대한 시간을 소모하는 것이 아닌 git에 대한 시간을 소모하는 시간이 주가 될수 있다.) 혹시나 git 개념에 대해 자세히 알고 싶으신 분은 아래의 링크를 참고하여 아래 링크부터 순차적으로 작성된 글을 보시는 것을 권합니다.

Comment and share

개요

  • 카카오톡 채널을 만들고 챗봇 오픈 빌더(OBT)를 만드는 과정을 보여준다.

카카오톡 채널 관리자 가입


  • 프로필 사진, 채널 이름, 검색용 아이디 등 채널을 만든다. png
    png

카카오톡 챗봇 오픈 빌더(OBT) 신청

  • 챗봇 관리자센터 OBT를 신청해야 해당 채널 챗봇을 만들수가 있으므로 작성한 뒤 신청한다.

  • 구글 검색창에서 카카오톡 오픈 빌더를 검색한다.

    png


    png


  • 만들었던 카카오톡 채널 대시보드로 이동한 뒤 관리 - 상세설정 으로 들어간다.

    png


  • 채널 URL을 복사

    png

  • 복사한 채널 URL을 아래 사진과 같이 붙여넣기 후 신청 사유를 작성하여 신청한다.

    • 신청사유에 자세한 사유를 입력해야 승인을 해준다고 그랬으니 참고 바랍니다.

    png


  • 아래와 같은 안내가 나오면 신청은 완료된 것이다.

    png

Comment and share

  • 이 글은 필자가 경험한 오류를 해결하는 과정을 기록한 내용입니다.

개요

  • Microsoft Visual Studio(Vs code) unins000.exe 액세스 거부로 인한 설치 오류가 발생하여 해결하는 과정을 설명한다.

Unins000.exe 오류

  • Vs code를 사용하는 도중 Microsoft Visual Studio(Vs code) unins000.exe 액세스 거부 오류가 발생했다.
    png
  • unins000.exe 에러는 “실행시간 에러”로 프로그램을 실행 중에 발생하는 에러다, 이 에러는 Microsoft Visual Studio Code(Vs code) 프로그램의 새로운 업데이트를 실행 하려는데 사용자의 권한이 없어 발생하는 오류이다.

오류 해결방법

  • 오류 해결 방법으로는 Microsoft Visual Studio Code(VS code)가 설치되어 있는 폴더의 권한을 변경하여 액세스 오류를 해결할 수 있다.
    • Microsoft VS code 폴더(기본 설치 경로는 C:/Programfiles/Microsoft VS code) 속성 보안 사용자에 모든 권한 허용으로 변경한 뒤 적용을 한다.
    • VS code를 실행할 때 관리자 권한으로 실핸한다.

https://github.com/microsoft/vscode/issues/75367

Comment and share


개요

  • VS code에서 오라클을 연동한다.

VS Code확장(Extension)

  • VS Code 실행 후 사이드 바(side bar)에서 확장(Extension)을 통한 Oracle Developer Tools for VS Code를 설치한다.
    png
  • 설치 중간에 아래와 같은 문구가 나오면 해당 파일을 설치해야 한다.
    png

필수 설치 파일

테스트

  • 설치가 완료가 되면 Extension 메뉴 밑에 DB 메뉴가 활성화 되는 것을 확인 할 수 있다.
    png


  • 여기에서 VS Code 재 시작을 하도록 한다.

  • 빨간색으로 밑줄 친 플러스 모양을 클릭하면 New Connection 버튼이 있는데 클릭하면 새로운 Connection이 생성된다.

    • 단, 여기에서 새로운 Connection은 기존에 이미 만들어진 Connection을 의미한다.

    • 따라서, 기존 SQL Developer에서 생성했던 것과 동일하게 작성을 해야한다.

      png


  • Database host name, Port number, Serviece name, User name, Password, Connection name을 확인 후 작성한다.
    png
  • 완료 되면, 아래 그림과 같이 DB가 활성화 된 것을 확인 할 수 있다.
    png
    png
  • 마우스 우클릭을 하면, 새로운 쿼리 파일을 작성할 수 있다.
    png
  • 파일을 작성하면 아래와 같이 Ctrl + E를 눌러 SQL을 실행한다.
    png
  • 정상적으로 실행이 되면 아래와 같은 결괏값이 나온다.
    png

Comment and share


개요

  • 작성한 SQL 파일 및 코드들을 Jupyter Notebook에서 실행 하기 위한 설정하는 과정을 설명한다.
  • 필자는 평소 Jupyter Notebook을 VSCode로 실행하여 VSCode를 통해 설명을 하는데 Jupyter Lab 또는 Jupyter Notebook을 직접 실행하여 설정해도 무방하다.

Step 1. 라이브러리 설치

  • 공통적으로 다음 라이브러리를 설치한다.
1
pip install ipython-sql

png


  • 다음으로 접속하려는 DB에 맞춰서 라이브러리를 설치한다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # sql server
    pip install pyodbc

    # PostgreSQL
    pip install pyscopg2

    # MySQL
    pip install PyMySQL

    # Oracle
    pip install cx_Oracle

    png


Step 2. Jupyter Notebook SQL 연결

  • 필자는 VSCode를 사용하여 Jupyter Notebook을 사용하여 VSCode를 사용하여 작성하였다.
  • VScode를 실행하여 아래 사진에서 밑줄 친 새 파일을 클릭하면 Jupyter Notebook(.ipynb) 형식으로 파일을 생성한다.
    png
  • 생성한 파일에 매직 명령어로 아래와 같은 코드를 입력한 뒤 실행하면 pakage 설치 안내창이 나오는데 설치한다.
    1
    %load_ext sql
    png

모듈 에러(ModuleNotFoundError: No module named ‘sql’)

  • 이 에러는 sql이라는 이름의 모듈을 설치가 안되었을때 나오는 에러인데 라이브러리를 설치를 해줬는데도 불구하고 ModuleNotFoundError: No module named 'sql' 라는 에러가 나온다. 그럴 땐 내가 설치를 한 라이브러리가 어느 경로에 저장되었는지 확인해야 한다. (필자는 설치를 할 때 나온 메세지를 통해 확인함.)
    1
    2
    import sys
    sys.executable -- 현재 파일 파이썬 경로 확인
  • 필자는 VSCode로 생성한 파일의 파이썬 경로와 다른 경로에 설치가 되어 위와 같은 오류가 생성되었던 것이다. 그렇다고 환경 변수를 새로 설정하기에는 너무 복잡하니, 파이썬 파일을 새로 만들어 설치된 경로와 맞춰주겠다.
  • 아래 사진 우측 상단에 밑줄 친 상자 클릭을 한다.
    png
  • 아래 사진에서 필자의 컴퓨터에서 파이썬 라이브러리가 저장된 경로는 두번째 항목이기 때문에 클릭을 하면 설정이 바뀐다.
    png
    png
  • Step 2 방법으로 한번 더 실행하면 아래 사진 과 같이 오류 없이 정상적으로 실행된다.
    png

DB 접속

  • 접속하려는 DB에 맞는 코드를 입력 후 실행

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # SQL Server
    %sql mssql+pyodbc://user_name:password@host:port_number/db

    # PostgreSQL
    %sql postgresql://user_name:password@host:port_number/db

    # MySQL
    %sql mysql://user_name:password@host:port_number/db

    # Oracle
    %sql oracle://user_name:password@127.0.0.1:port_number/db
    • user_name, password, port_number,db 등을 확인하려면 Oracle SQL Developer을 실행하여 해당 DB 우클릭 후 속성에 들어가면 상세히 적혀 있다.
      png
      png
  • 각자 DB에 맞게 작성 하면 아래 사진과 같이 정상적으로 DB 연결이 되었다고 나온다.
    png


  • 코드 작성이 잘되는지 테스트 해본다.

    1
    2
    3
    4
    5
    # sql 실행문 (%%sql)을 붙이고 실행
    %%sql

    SELECT *
    FROM employees

    png

Comment and share


개요

  • windows WSL2에서 airflow를 설치 및 설정에 대해서 설명한다.

Step 1. Install pip on WSL

  • 우선 airflow를 설치하기 위해 pip를 설치한다
1
2
$ sudo apt install python3-pip
[sudo] password for username:

Step 2. Install virtualenv package

  • 가상 환경 라이브러리인 virtualenv 를 설치한다.

    1
    $ sudo pip install virtualenv

Step 3. Create a virtual environment

  • C드라이브에 airflow-test 폴더를 생성한 뒤 해당 디렉터리로 이동한다.

  • 가상 환경을 생성한 후, 가상 환경에 접속한다.

    1
    2
    3
    $ virtualenv venv # 가상 환경 생성
    $ source venv/bin/activate # 가상 환경 접속

  • .bashrc 파일을 수정한다

    1
    $ vi ~/.bashrc
  • 파일을 연 후, 다음과 같은 코드를 추가한다.

    1
    export AIRFLOW_HOME=/mnt/c/airflow-test
    • 리눅스 환경에서 파일을 읽고 쓰는 모드 설정 및 입력 모드에서의 단축키는 생소 할수 있으므로 아래 사이트 참고 하여 코드를 수정한다.
  • 수정 된 코드를 업데이트 한 뒤, 코드가 제대로 반영되었는지 확인한다.

    1
    2
    $ source ~/.bashrc # 업데이트
    $ echo $AIRFLOW_HOME # 코드 정상 반영 확인

Step 4. Apache Airflow 설치

  • PostgreSQL, Slack, Celery 패키지를 동시에 설치한다.

    1
    $ pip3 install 'apache-airflow[postgres, slack, celery]'
  • 에어플로우를 실행 하기 위해 DB 초기화를 해줘야 한다.

    1
    $ airflow db init # DB 초기화
  • 실제로 잘 구현 되었는지 확인을 하기 위해 webserver를 실행한다.

    1
    $ airflow webserver -p 8080
    • webserver는 airflow.cfg파일의 endpoint_url 주소를 확인 후 설정한다.(필자는 8080으로 되어 있어서 위와 같은 코드로 실행함)

    png


  • 다음으로 일정 주기로 데이터 흐름이 실행되게 하려면 Scheduler가 필요하다.

    1
    airflow scheduler
    • 위와 같이 airflow webserver -p 8080airflow scheduler 를 실행하려면 2개의 wsl 창이 필요하다.
  • 생성한 http://localhost:8080/login/에 접속하면 아래와 같은 화면이 나타난다.

    png


  • cntrl+c로 작업을 해제하고 이제 로그인을 하기 위해 회원 가입을 하도록 한다.

    1
    2
    # users create
    $ airflow users create --username airflow --password airflow --firstname winters evan --lastname airflow --role Admin --email your_email@some.com
    • username(ID)와 password는 airflow로 한뒤 나머지 lastname, email은 사용자에 맞게 수정한다.
  • 다시 webserver와 Schedule를 실행한 뒤 로그인을 하면 정상적으로 다양한 DAGs 파일이 나타난 것을 확인할 수 있다.

    png

Default 예제 제거하기

  • load_examples를 없애고 내가 생성 및 수정한 DAGs들만 보이고 싶다면 airflow.cfg 파일을 열고, load_examples = True 로 되어 있는 것을 load_examples = False 로 변경한다.

    png


  • 그 후에, 다시 터미널로 돌아와서 airflow db reset 실행한다.

    png


  • webserver 를 실행하여 확인

    png

Comment and share

개요

  • Windows 11 에서 NIFI를 설치 및 설정을 하는 것을 설명한다.

Step 01. Nifi 다운로드

Step 02. Java 환경 설정

  • 먼저 Nifi를 사용하려면 Java 설치를 해야 하는데 설치 내용은 아래 블로그를 참조한다.

Step 03. run-nifi 배치 파일 실행

  • run-nifi 파일을 관리자 권한으로 실행한다. (경로 c/nifi-1.16.0/bin/run-nifi.bat)

    png


  • 아래와 같은 메시지가 출력이 되면 정상적으로 세팅한 것이다.

    png


Step 04. Web UI 확인

  • Web UI를 확인해본다. (약 1분 지난 뒤)

  • 간혹 안 나오는 경우가 있다. 그럴 경우에는 새로운 CMD 파일을 연 후, Process ID를 서로 비교 대조해본다.

    1
    $ netstat -ano | find "8443"

    png


Step 05. 로그인 ID 찾기 및 접속

  • 우선 별도로 설정을 하지 않았다면, 자동으로 생성이 된다.

  • logs/nifi-app 로그파일에서 메모장으로 연 후, 검색을 한다. (Ctrl + F, Username)

    png


  • 로그인을 하면, 아래와 같은 화면으로 접속이 되는 것을 확인할 수 있다.

    png

Comment and share

개요

  • WSL2 프로그램을 사용하여 가상 환경에서 Apache Nifi 설치 및 설정하는 과정을 설명한다.

Step 01. Java 설치 및 설정

  • wls2에서 Java를 설치 한다.
1
2
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt install openjdk-11-jre-headless
  • 환경 변수 설정을 한다.
    1
    2
    $ vi ~/.bash_profile
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    png
    • WSL(Windows Subsystem for Linux)는 리눅스 환경 이기 때문에 일반 terminal 창과는 다른 명령어를 사용한다. 명령어는 아래 사이트를 참고하여 작성하길 바란다.

Step 02. Nifi 설치 및 설정

  • curl을 이용하여 Nifi를 현재 경로에 받는다.

    1
    $ sudo wget https://downloads.apache.org/nifi/1.16.0/nifi-1.16.0-bin.tar.gz
  • .tar.gz 파일의 압축을 푼다.

    1
    $ sudo tar xvzf nifi-1.16.0-bin.tar.gz
  • nifi-1.16.0/bin 폴더로 경로를 이동한다

    1
    $ cd nifi-1.16.0/bin

    png


    • 필자의 경로는 root/nifi-1.16.0/bin 이다.
  • ls 를 입력하여 현재 경로에 nifi-env.sh 파일이 있는지 확인

    png


  • 환경 변수를 설정 한다.

    1
    2
    $ sudo vi nifi-env.sh
    export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

    png


Step 03. Nifi 실행

  • nifi-env.sh 파일을 실행 한다.

    1
    $ sudo ./nifi.sh start

    png


  • nifi-1.16.0/conf에 있는 nifi.properties를 열어 webserver 주소를 확인한다.

    1
    2
    vi nifi.properties
    # 경로 /nifi-1.16.0/conf

    png


    png


  • Nifi 화면에 접속한다.

  • Username과 Password를 생성한다.(사용자에 맞게 생성 가능)

    1
    2
    3
    $ sudo ./bin/nifi.sh set-single-user-credentials human 1234567890123
    # username: human
    # password :1234567890123
  • 재 실행하여 로그인을 해본다.

    png


Comment and share


사전준비

  • Python3 가 설치가 되어야 가능하기 때문에 설치가 되어있지 않다면 아나콘다(Anaconda)에 접속하여 설치 바랍니다.

다운로드 전 필수 확인사항

  • 스파크 설치 전에는 반드시 체크해야 하는 사항이 있다. (System Compatibility)
  • 2022년 1월 기준은 아래와 같다.

Get Spark from the downloads page of the project website. This documentation is for Spark version 3.2.0. Spark uses Hadoop’s client libraries for HDFS and YARN. Downloads are pre-packaged for a handful of popular Hadoop versions. Users can also download a “Hadoop free” binary and run Spark with any Hadoop version by augmenting Spark’s classpath. Scala and Java users can include Spark in their projects using its Maven coordinates and Python users can install Spark from PyPI.

If you’d like to build Spark from source, visit Building Spark.

Spark runs on both Windows and UNIX-like systems (e.g. Linux, Mac OS), and it should run on any platform that runs a supported version of Java. This should include JVMs on x86_64 and ARM64. It’s easy to run locally on one machine — all you need is to have java installed on your system PATH, or the JAVA_HOME environment variable pointing to a Java installation.

Spark runs on Java 8/11, Scala 2.12, Python 3.6+ and R 3.5+. Python 3.6 support is deprecated as of Spark 3.2.0. Java 8 prior to version 8u201 support is deprecated as of Spark 3.2.0. For the Scala API, Spark 3.2.0 uses Scala 2.12. You will need to use a compatible Scala version (2.12.x).

For Python 3.9, Arrow optimization and pandas UDFs might not work due to the supported Python versions in Apache Arrow. Please refer to the latest Python Compatibility page. For Java 11, -Dio.netty.tryReflectionSetAccessible=true is required additionally for Apache Arrow library. This prevents java.lang.UnsupportedOperationException: sun.misc.Unsafe or java.nio.DirectByteBuffer.(long, int) not available when Apache Arrow uses Netty internally.

자바 설치

Step 01. 설치

  • 다운로드 파일을 관리자로 실행한다. 계속 Next 버튼 클릭 후, 아래 파일에서 경로를 수정한다. (이 때, Program Files 공백이 있는데, 이러한 공백은 환경 설치 시 문제가 될 수 있다.)

    png


  • Foder name(경로)를 아래와 같이 변경 후 OK 클릭을 하면 설치가 완료된다.

    png


  • 이번에는 자바 런타임 환경의 폴더도 동일하게 변경해준다. (변경 클릭 후 수정)

    • C드라이브 경로에 jre 폴더를 생성하고 저장한다.

    png


Spark 설치

(1) Spark file 설치

(2) WinRAR 프로그램 다운로드

  • .tgz 파일 압축을 풀기 위해 WinRAR 을 설치한다.
    • WinRAR: https://www.rarlab.com/download.htm

    • 링크에 들어가면 아래 화면이 보이는데 각 컴퓨터 환경에 맞게 설치 바랍니다.

      png


    • 다운로드가 완료 되면 위 과정 (1)에서 설치했던 spark-3.2.0-bin-hadoop3.2.tgz 파일 압축 풀기(Extract) 실행

(3) spark 폴더 생성 및 파일 이동

  • C드라이브 안에 spark 라는 새로운 폴더 생성 후 앞 서 압축을 풀었던 파일 spark-3.2.0-bin-hadoop3.2 폴더 내 모든 파일을 생성한 spark 폴더로 옮긴다.

    png


(4) log4j.properties 파일 수정

  • conf - [log4j.properties](http://log4j.properties) 파일을 연다.

    png


  • 해당 파일을 메모장으로 연 후(필자는 vscode로 연결), 아래에서 빨간줄을 친 log4j.rootCategory=INFO 에서 INFOERROR 로 변경한다.

    • 작업 실행 시, 출력하는 모든 logs 값들을 없앨 수 있다.

      png


winutils 설치

  • 이번에는 스파크가 윈도우 로컬 컴퓨터가 Hadoop을 착각하게 만들 프로그램이 필요하다.

  • C드라이브에서 winutils란 이름의 폴더를 생성한 후, 앞서 받은 hadoop-3.2.2 파일의 bin 폴더를 옮긴다.

    png


  • 이 파일이 Spark 실행 시, 오류 없이 실행될 수 있도록 CMD 프로그램에서 파일 사용 권한을 얻도록 한다.

    • CMD 프로그램을 관리자 권한으로 실행 후 아래 코드 입력
    1
    2
    C:\Windows\system32>cd c:\winutils\bin # 경로 변경
    c:\winutils\bin> winutils.exe chmod 777 \tmp\hive
    • 만약, ChangeFileModeByMask error (3) 에러 발생 시, C드라이브에 tmp\hive 폴더를 차례대로 생성을 한다.


환경변수 설정

  • 시스템 환경 변수를 설정한다.
    • 시스템 환경 변수 검색 후 클릭

      png


    • 환경 변수 클릭

      png


    • 각 사용자 계정에 사용자 변수 - 새로 만들기 버튼 을 클릭

      png


    • SPARK_HOME 환경 변수를 설정한다.

      png


    • JAVA_HOME 환경 변수를 설정한다.

      png


    • HADOOP_HOME 환경 변수를 설정한다.

      png


    • 이번에는 PATH 변수를 편집한다.

      png


    • 아래 코드를 추가한다.

      • %SPARK_HOME%\bin

      • %JAVA_HOME%\bin

        png


파이썬 환경 설정

  • Python 환경 설정을 추가한다.

    png


스파크 테스트

  • CMD 파일을 열고 c:\spark 폴더로 경로를 설정 한 뒤 pyspark 로 실행

    1
    2
    cd c:\spark # 경로를 c:\spark 로 설정
    pyspark # 실행

    png


  • 해당 [README.md](http://README.md) 파일을 불러와서 아래 코드가 실행되는지 확인한다.

    1
    2
    3
    4
    >>> rd = sc.textFile("README.md")
    >>> rd.count()
    109
    >>>

Comment and share

Author's picture

Winters

개발자를 꿈꾸는 어른이


개발자(예비)


대한민국/서울