brunch

You can make anything
by writing

- C.S.Lewis -

by DNS전문가카페운영 Apr 12. 2019

[AWS]64.빅데이터 분석,EMR로 시작하기


1. 필요 내용

IOT장비에서 받아오는 미세먼지 데이터를 분석하고자 한다.

배치성 데이터를 처리하고자 한다.

이벤트 로그를 분석하고자 한다.

빠른시간내에 데이터 처리하고자 한다.



2.  Amazon EMR  사용.  

대용량 데이터 처리
실시간 데이터 처리

저장장치 S3 사용

Spot Fleets 사용 (다양한 인스턴스사용)으로 비용절감

AutoScaling 사용

시각화 도구 사용



3. 구성


서비스 구성


빅데이터 처리를 위한 구성


EMR 자체 내부 구성


4. 사전 준비물 3가지

1) AWS계정 생성

2) S3 Bucket 생성

3) EC2 key Pair 생성



5. EMR 생성하기


1) [S3]에서 EMR S3 버킷을 만든다.

name: emr-hive2

name: emr-log2


2) [EC2]에서 Key-Pair를 만든다.

name: emr-key2



3) [EMR]에서 EMR를 만든다.

Cluser name : test1

Instance Type : m4.large 정도로 비용크지 않게

EC2 key pair : emr-key2

[Create cluster] 클릭


4) 사용해보기


GUI로 실행하기.

Steps 클릭 > Add Step

Step type :

Hive program

Script S3 Location :

s3://ap-northeast-2.elasticmapreduce.samples/cloudfront/code/Hive_CloudFront.q

Input S3 Location :

s3://ap-northeast-2.elasticmapreduce.samples

Ousput S3 Location :

s3://emr-hive2/


reflush 버튼 > Completed 확인


또는


Cli로  실행하기


Master node에 로그온하여  Cli 로 사용해보기

1) EMR  Summary에서  Master node의 Security group 수정

로그온하기 위해 내 pc의 ssh 허용

(Slave 도 동일하게 허용)



2) EMR Master node에 ssh로 접속


[root@ns2 ~]# ssh -i "emr-key2.pem" ec2-user@ec2-52-79-148-140.ap-northeast-2.compute.amazonaws.com

       __|  __|_  )

       _|  (     /   Amazon Linux AMI

      ___|\___|___

https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/

7 package(s) needed for security, out of 12 available

Run "sudo yum update" to apply all updates.                                                                    

                                                                   

[ec2-user@ip-10-0-0-37 ~]$



EMR > Summary  > Master public DNS:   SSH클릭

해당 dns 로 접속한다.

ec2-52-79-148-140.ap-northeast-2.compute.amazonaws.com  SSH


[root@ns2 ~]# ssh -i ~/emr-key2.pem hadoop@ec2-52-79-148-140.ap-northeast-2.compute.amazonaws.com



EMR > Steps 에서 Hive 스크립트 실행을 통해 CLI로도 실행 시킬수 다.


hive-script --run-hive-script --args -f s3://ap-northeast-2.elasticmapreduce.samples/cloudfront/code/Hive_CloudFront.q -d INPUT=s3://ap-northeast-2.elasticmapreduce.samples -d OUTPUT=s3://emr-hive2/


Master 에서 스크립트 실행

hive-script --run-hive-script --args -f s3://ap-northeast-2.elasticmapreduce.samples/cloudfront/code/Hive_CloudFront.q -d INPUT=s3://ap-northeast-2.elasticmapreduce.samples -d OUTPUT=s3://emr-hive2/ouput-cli


입력:

2014-07-05 20:00:00 LHR3 4260 10.0.0.15 GET eabcd12345678.cloudfront.net /test-image-1.jpeg 200 - Mozilla/5.0%20(MacOS;%20U;%20Windows%20NT%205.1;%20en-US;%20rv:1.9.0.9)%20Gecko/2009040821%20IE/3.0.9


스크립트:

-- Summary: This sample shows you how to analyze CloudFront logs stored in S3 using Hive

-- Create table using sample data in S3.  Note: you can replace this S3 path with your own.

CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs (

  DateObject Date,

  Time STRING,

  Location STRING,

  Bytes INT,

  RequestIP STRING,

  Method STRING,

  Host STRING,

  Uri STRING,

  Status INT,

  Referrer STRING,

  OS String,

  Browser String,

  BrowserVersion String

)

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'

WITH SERDEPROPERTIES (

  "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$"

) LOCATION '${INPUT}/cloudfront/data';

-- Total requests per operating system for a given time frame

INSERT OVERWRITE DIRECTORY '${OUTPUT}/os_requests/' SELECT os, COUNT(*) count FROM cloudfront_logs WHERE dateobject BETWEEN '2014-07-05' AND '2014-08-05' GROUP BY os;



6. S3  > emr-hive2폴더에서 EMR 결과 확인하기


출력:

파일명 : 000000_0


내용 :

Android855

Linux813

MacOS852

OSX799

Windows883

iOS794




7. 부가 설명1

EMR생성시 Advance 옵션으로 다양한서비스를 추가할수 있다.



8. EMR , S3 삭제하기

비용이 나오지 않도록   실습종료후  만들어진  EC2는 반드시 삭제한다.!!!



참고

docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html


https://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/emr-gs-process-sample-data.html



감사합니다.


매거진의 이전글 63. AWS에서 웹 콘솔로 서버 관리.SSM사용2/2

매거진 선택

키워드 선택 0 / 3 0
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari
;