순서만 이해하자
EMR 사용하고 , Spark 실행해서 데이터를 처리하는 상세 방법을 알아보자.
S3에 데이터를 수집한다.
EMR에서 Spark를 사용한다.
Amazon Redshift에 데이터를 올려 Amazon Redshift를 이용할수도 있다.
둘다 결과는 같다.
<1> 데이터 처리 순서
<2> EMR 은 데이터 분석 플랫폼, 전체 구성과 주요 작업을 알아보자
<3> 상세 작업 순서
<4> S3 생성하고 , S3에 파이썬 스크립트 업로드
<5> EMR에서 Spark 실행
<6> System Manager로 EMR 연결
<7> Spark로 데이터 쿼리
<8> Spark-Redshift 연결을 위한 AWS자격 증명 생성
<9> Spark-Shell로 처리된 데이터 확인
<10> EMR에서 Spark 이용해 Amazon Redshift로 데이터 전송
<11> Amazon Redshift 이용 데이터 확인
<12> Spark로 데이터 쿼리 VS Amazon Redshift 이용 데이터 확인
<1> 데이터 처리 순서
1
구성도?
Raw data S3 ---------- EMR --------- Amazon Redshift ----------Machine Learning ------ Dashboard
L_______ 결과 S3
2
데이터 처리 순서 ?
Raw data를 S3에 넣는다.
EMR Spark에서 데이터를 읽고 처리한다.
용량이 아주 큰 경우 Redshift에서 추가 분석한다
분석 데이터를 머신러닝 한다.
데이터 보드에 원하는 결과가 나온다.
결과 데이터는 S3에 저장된다.
비즈니스 판단을 하여 서비스를 개선한다.
<2> EMR 은 데이터 분석 플랫폼, 전체 구성과 주요 작업을 알아보자
1
도구?
Apache Spark, Hive , HBase , Flink , Presto 같은 오픈 소스 도구를 사용한다.
2
주요 도구?
Apache Spark 사용
Amazon Redshift 사용
S3 사용
3
구성과 주요 작업?
Raw data S3 ---------- EMR --------- Amazon Redshift ----------Machine Learning ------ Dashboard
EMR에서 Spark 실행
Spark에서 데이터 처리
Spark로 EMR에서 Amazon Redshift로 데이터 전송 (Spark Redshift 커넥터 사용)
<3> 상세 작업 순서
Raw data S3 ---------- EMR --------- Amazon Redshift ----------Machine Learning ------ Dashboard
S3 생성하고 , S3에 파이썬 스크립트 업로드
EMR에서 Spark 실행
System Manager로 EMR 연결
Spark로 데이터 쿼리
Spark-Redshift 연결을 위한 AWS자격 증명 생성
Spark-Shell로 처리된 데이터 확인
EMR에서 Spark 이용해 Amazon Redshift로 데이터 전송
Amazon Redshift에서 데이터 확인
<4> S3 생성하고 , S3에 파이썬 스크립트 업로드
S3
spark-seo11 > Creeate Bucket
Create folder > in
Upload > Add files > S3에 파이썬 스크립트 업로드
<5> EMR에서 Spark 실행
1
EMR 생성 해보자 - (주의Starting 에서 안넘어간다. 체크 필요, Running이 되어야 한다.)
EMR
Crete cluster > My cluster2 > Go to advanced options
Hadoops , Hive , Hue, Pig 가 디폴트 이다.
Spark 2.4.7 check 해서 설치하자
Networking > EC2 Subnet 을 선택하자. (필수)
Master , Core 사양 조절
만든 s3에 s3://sparkt-seo11/logs/
여기서는 테스트 이므로 Debugging , Termination protection 체크 해제
create cluster
20 분 소요
2
EMR
Steps
Add step
Spark Application
test 1
application locaton : s3://xxxxxxxxx/a/xxxxxxxxx.py
arguments s3://xxxxxxxxxxxx/b
add
10분 소요
3
complete 확인
3
S3
s3://xxxxxxxxxxxx/b 내용 확인
<6> System Manager로 EMR 연결
command host login
EMR 로그인
<7> Spark로 데이터 쿼리
외부 S3에서 필요한 JAR파일 다운 로드
Spark shell 시작
scala >
<8> Spark-Redshift 연결을 위한 AWS자격 증명 생성
라이브러리 가져오기
IAM
<9> Spark-Shell로 처리된 데이터 확인
S3 경로 변수를 생성
필요한 것 확인 명령 실행
10분 소요됨
Spark 는 10분 정도씩 걸림
좀 걸린다.
이제 Redshift 로 빠르게 되는지 확인해보자~
<10> EMR에서 Spark 이용해 Amazon Redshift로 데이터 전송
1
Amazon Redshift
2
JDBC URL 확인
변수로 지정
3
데이터를 Amazon Redshift에 쓴다. (명령어 실행)
4
콘솔 Redshift > QUERIES > Queries and loads 에서 확인한다.
<11> Amazon Redshift에서 데이터 확인
1
Amazon Redshift
왼쪽 창에서 Editor 선택
Connect Database
database name :
database user :
연결
2
데이터 쿼리
SELECT count(*) FROM xxxxxxxxxxx;
<12> Spark로 데이터 쿼리 VS Amazon Redshift 이용 데이터 확인
정리 ?
1
Spark로 데이터 쿼리 VS Amazon Redshift 이용 데이터 확인 결과는 같다.
2
Amazon Redshift 이용 데이터 확인 이 더 빠르다.
3
Amazon Redshift 는 사용하기위해 데이터를 올리는 시간이 필요하다.
https://brunch.co.kr/@topasvga/1766
감사합니다.