본문 바로가기
BigData/Project

[Project] ETL Daily batch project(공공데이터 코로나 API, Python, PySpark, Airflow, AWS) 4. EC2 서버 생성 및 pyspark, airflow,MySQL 설치

by 스파이디웹 2022. 2. 17.
728x90

이번 포스트에는 EC2서버 환경을 구성하고, spark, airflow를 설치하여 이미지로 저장하겠습니다.

 

어떤 프로젝트인지 잘 모르시는 분은 아래의 링크를 참고해주세요.

2022.02.17 - [BigData/Project] - [Project] ETL Daily batch project(공공데이터 코로나 API, Python, PySpark, Airflow, AWS) 1. 프로젝트 개요


1. EC2서버 띄우기

1) EC2생성 및 Ubuntu Server 20.04 LTS를 선택합니다.

2) 인스턴스 타입 선택

현재 airflow 및 pyspark를 한 곳에서 돌리는 구조기 때문에, 적당한 크기의 t2.large타입을 선택합니다.

3) public ip 부여 및 IAM role 부여

public IP를 부여할 수 있게 Use subnet setting(Enable), IAM role을 S3Full Access 권한으로 하나 만들어 부여해줍니다.

4) add storage는 기본 값 그대로 설정

5) add tags도 기본 값 그대로 설정

6) security groups 설정

airflow webserver를 위한 8080 포트를 열고, ssh를 위한 22포트를 오픈한 security group으로 설정합니다.

7) EC2 key-pair 선택 및 instance 시작

EC2 key-pair는 ssh연결하기 위한 인증수단으로 미리 생성하지 않으셨다면 아래의 사진과 같이 생성 해주세요.

8) ec2 서버 ssh 연결

ssh -i "EC2keypair위치\ec2-keypair.pem" ubuntu@publicIPV4DNS

 


2. 서버시간 한국시간으로 맞추기

pyspark ETL 코드내에서 now()에 따라 현재까지의 데이터를 불러오기 때문에 서버의 시간을 한국시간으로 맞춰놔야 합니다.

#첫 번째 방법
sudo apt-get install rdate
sudo rdate -s time.bora.net

#두 번째 방법
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime


3. MySQL 설치, MySQL connector 다운로드, findspark, lxml, bs4 다운로드

1) pip3 설치

sudo apt-get update

sudo apt install python3-pip

2) 파이썬 패키지 설치

pip3 install findspark

pip3 install lxml

pip3 install bs4

 

3) MySQL 설치, 시작

#mysql 설치
sudo apt-get install mysql-server

#mysql 시작
sudo systemctl start mysql

#서버 시작시 자동으로 시작되게 서비스 등록
sudo systemctl enable mysql

4) mysql 데이터베이스 생성 및 테이블 생성

mysql 접속

sudo mysql -u root -p
#이후 엔터

mysql 데이터베이스 생성 및 테이블 생성

create database COVID19;

use COVID19;

create table Covid_19_info(
`기준날짜` date,
`당일확진자수` int,
`누적확진자수` int,
`당일사망자수` int,
`누적사망자수` int,
`당일의심신고검사자수` int,
`누적의심신고검사자수` int,
`전체확진자치명률(%)` float,
PRIMARY KEY(기준날짜)
);

sudo 없이 로그인 설정(mysql connector로 mysql 에 접근하려면 권한을 부여해야함)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';

FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON COVID19.* TO 'root'@'localhost';

5) mysql connector 다운로드

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.28.zip
sudo apt install unzip
unzip mysql-connector-java-8.0.28.zip


4. Spark 설치

https://spidyweb.tistory.com/220?category=886423 

 

[Spark] virtual box linux [ubuntu 18.04]에 스파크 설치,다운로드 5.ubuntu 에 spark(스파크) 다운로드,설치

이번 포스트에는 Spark를 설치해 보겠습니다. vritualbox 설치,ubuntu설치, ssh통신, hadoop 설치가 완료 되지 않으신 분은 아래의 URL을 참고하여 완료해 주세요. 1.virtualbox 설치 및 ubuntu 설치 spidyweb.tis..

spidyweb.tistory.com

위의 링크와 같게 설치


5. airflow 설치 및 설정

https://spidyweb.tistory.com/349?category=903375 

 

[Airflow] Airflow 설치 + mysql로 DB지정하기 +서비스(데몬으로) 등록하기

1. Apache Airflow 설치 1) AIRFLOW 설치 및 부가적으로 필요한 패키지 설치 sudo apt-get update sudo apt install python3-pip 2) 부가적으로 필요한 패키지 설치 pip3 install cryptography psycopg2-binary bo..

spidyweb.tistory.com

1) airflow 설치

2) mysql meta db로 설정

3) 유저만들기

4) webserver 확인하기

5) airflow 서비스로 등록하기


이상으로 EC2환경 구성을 마쳤습니다.

다음 포스트에는 airflow dags 구성 및 S3로 데이터 보내고 자동으로 EC2를 종료하게끔 하겠습니다.

728x90

댓글