aws 시작 - 빅 데이터 분석 · pdf fileaws 시작 빅 데이터 분석 amazon's...

25
AWS 시작 빅 데이터 분석 AWS 시작: 빅 데이터 분석 Copyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Upload: lyduong

Post on 16-Mar-2018

241 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작빅 데이터 분석

AWS 시작: 빅 데이터 분석Copyright © 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Page 2: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

Page 3: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석

Table of Contents빅 데이터 분석 ................................................................................................................................... 1

빅 데이터를 위한 AWS의 핵심 서비스 ........................................................................................... 1설정 .................................................................................................................................................. 2

Sign Up for AWS ........................................................................................................................ 2Create a Key Pair ....................................................................................................................... 2

자습서: 감성 분석 ............................................................................................................................... 41단계: Twitter 개발자 계정 생성 .................................................................................................... 42단계: Amazon S3 버킷 생성 ....................................................................................................... 53단계: 감성 데이터 수집 및 저장 ................................................................................................... 5

AWS CloudFormation을 이용해 인스턴스 시작 ........................................................................ 6인스턴스를 이용한 트윗 수집 ................................................................................................ 7Amazon S3에 트윗 저장 ...................................................................................................... 8

4단계: 매퍼 사용자 지정 .............................................................................................................. 95단계: Amazon EMR 클러스터 생성 ............................................................................................ 106단계: 감정 분석 출력 검토 ........................................................................................................ 137단계: 정리 .............................................................................................................................. 13

자습서: 웹 서버 로그 분석 .................................................................................................................. 151단계: Amazon EMR 클러스터 생성 ............................................................................................ 152단계: 마스터 노드 연결 ............................................................................................................ 173단계: Hive의 시작 및 구성 ........................................................................................................ 184단계: Hive 테이블 생성 및 HDFS로 데이터 로드 ........................................................................... 185단계: Hive 쿼리 ....................................................................................................................... 196단계: 정리 .............................................................................................................................. 20

추가 빅 데이터 옵션 .......................................................................................................................... 21관련 리소스 ...................................................................................................................................... 22

iii

Page 4: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석빅 데이터를 위한 AWS의 핵심 서비스

Amazon Web Services를 이용한 빅데이터 분석

다음 자습서들은 Amazon Web Services를 이용해 빅 데이터를 처리하는 방법을 보여줍니다.

• 자습서: 감성 분석 (p. 4) — 하둡을 이용한 Twitter 데이터 평가• 자습서: 웹 서버 로그 분석 (p. 15) — Hive를 이용해 Apache 웹 서버 로그를 쿼리하는 방법

빅 데이터를 위한 AWS의 핵심 서비스AWS에서는 사용한 리소스에 대해서만 비용을 지불합니다. 이용 가능성에 대비해 물리적 서버 클러스터와스토리지 장치를 유지하는 대신, 필요한 경우 리소스를 생성할 수 있습니다. AWS는 하둡, Hive, Pig과 같이널리 사용되는 도구도 지원하므로, 이러한 도구를 실행하기 위한 클러스터를 손쉽게 프로비저닝, 구성 및 모니터링할 수 있습니다.

다음 표는 AWS가 어떻게 흔히 발생하는 빅 데이터 관련 문제점들에 대처하도록 돕는지 보여줍니다.

문제점 솔루션

데이터 세트의 규모가 매우 클 수 있다. 스토리지는비싸고, 데이터 손상 및 손실은 커다란 파급 효과를불러올 수 있다.

Amazon S3는 대규모 데이터를 저장할 수 있고, 그용량을 필요에 따라 늘릴 수 있다. 고도로 이중화되어 있고 안전하여 데이터 손실과 무단 사용을 방지한다. Amazon S3는 또한 의도적으로 소형화되어 비용이 낮게 유지된다.

데이터 처리를 위해 물리적 서버 클러스터를 유지하는 데 비용과 시간이 많이 든다.

가상 Amazon EC2 서버에서 애플리케이션을 실행할 때는 애플리케이션이 실행되는 동안에만 서버에대한 요금을 지불한다. 또한 애플리케이션의 처리요건을 충족하기 위해 서버의 수를 시간 또는 일 단위가 아닌 몇 분 내로 늘릴 수 있다.

하둡 및 기타 오픈 소스 빅 데이터 도구들은 구성, 모니터링, 작동이 어려울 수 있다.

Amazon EMR은 클러스터 구성, 모니터링, 관리를제어한다. Amazon EMR은 또한 오픈 소스 도구들을기타 AWS 서비스와 통합하여 대규모 데이터 처리를 단순화함으로써, 데이터 분석 및 값 추출에 집중할 수 있다.

자세한 내용은 빅 데이터를 참조하십시오.

1

Page 5: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석Sign Up for AWS

설정AWS를 처음 사용할 때는 다음 작업이 우선되어야 합니다. (이 단계들은 본 설명서에 있는 2개의 자습서에 대한 예습의 역할을 합니다.)

작업• Sign Up for AWS (p. 2)• Create a Key Pair (p. 2)

Sign Up for AWSWhen you sign up for Amazon Web Services (AWS), your AWS account is automatically signed up for allservices in AWS and you can start using them immediately. You are charged only for the services that youuse.

If you created your AWS account less than 12 months ago, you can get started with AWS for free. For moreinformation, see AWS Free Tier.

If you have an AWS account already, skip to the next step. If you don't have an AWS account, use thefollowing procedure to create one.

To create an AWS account

1. https://aws.amazon.com/을 열고 [Create an AWS Account]를 선택합니다.

Note

이전에 AWS Management 콘솔에 로그인한 적이 있을 경우 이를 브라우저에서 사용하지 못할 수 있습니다. 그와 같은 경우 [Sign in to a different account]를 선택한 다음, [Create a newAWS account]를 선택합니다.

2. 온라인 지시 사항을 따릅니다.

등록 절차 중 전화를 받고 전화 키패드를 사용하여 PIN을 입력하는 과정이 있습니다.

Create a Key PairAWS uses public-key cryptography to secure the login information for your instance. A Linux instance hasno password; you use a key pair to log in to your instance securely. You specify the name of the key pairwhen you launch your instance, then provide the private key when you log in using SSH. to obtain theadministrator password for your Windows instance so you can log in using RDP.

If you haven't created a key pair already, you can create one using the Amazon EC2 console.

To create a key pair

1. Open the Amazon EC2 console.2. From the navigation bar, in the region selector, click 미국 서부(오레곤).3. In the navigation pane, click Key Pairs.4. Click Create Key Pair.

2

Page 6: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석Create a Key Pair

5. Enter a name for the new key pair in the Key pair name field of the Create Key Pair dialog box, andthen click Create. Choose a name that is easy for you to remember.

6. The private key file is automatically downloaded by your browser. The base file name is the name youspecified as the name of your key pair, and the file name extension is .pem. Save the private key file ina safe place.

Important

This is the only chance for you to save the private key file. You'll need to provide the name ofyour key pair when you launch an instance and the corresponding private key each time youconnect to the instance.

7. Prepare the private key file. This process depends on the operating system of the computer that you'reusing.• If your computer runs Mac OS X or Linux, use the following command to set the permissions of

your private key file so that only you can read it.

$ chmod 400 my-key-pair.pem

• If your computer runs Windows, use the following steps to convert your .pem file to a .ppk file foruse with PuTTY.

a. Download and install PuTTY from http://www.chiark.greenend.org.uk/~sgtatham/putty/. Besure to install the entire suite.

b. Start PuTTYgen (for example, from the Start menu, click All Programs > PuTTY >PuTTYgen).

c. Under Type of key to generate, select SSH-2 RSA.d. Click Load. By default, PuTTYgen displays only files with the extension .ppk. To locate your

.pem file, select the option to display files of all types.e. Select your private key file and then click Open. Click OK to dismiss the confirmation dialog

box.f. Click Save private key. PuTTYgen displays a warning about saving the key without a

passphrase. Click Yes.g. Specify the same name that you used for the key pair (for example, my-key-pair) and then

click Save. PuTTY automatically adds the .ppk file extension.

3

Page 7: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석1단계: Twitter 개발자 계정 생성

자습서: 감성 분석감성 분석이란 특정 주제에 대한 일반적인 분위기 또는 집단의 의견으로 보통 설명되는 주관적인 반응을 알아보기 위해 데이터를 검토하고 처리하는 다양한 방법을 말합니다. 예를 들어, 어떤 블로그 또는 문서에 대한전반적인 동의 여부를 측정하거나 정치인에 대한 유권자들의 태도를 파악하는 데 감성 분석을 이용할 수 있습니다. 감성 데이터는 종종 소셜 미디어 서비스, 그리고 리뷰, 코멘트, 토론 그룹과 같은 SNS와 유사한 사용자 생성 콘텐츠에서 파생됩니다. 따라서 데이터 세트는 '빅 데이터'로 간주될 만큼 대규모로 성장하는 경향이있습니다.

Amazon EMR은 오픈 소스 데이터 처리 프레임워크를 AWS가 제공하는 서비스 전체와 통합합니다. 그 결과로 얻는 아키텍처는 확장 가능하고 효율적이며, 특정 기간에 이루어진 트윗과 같은 대규모 감성 데이터를 분석하는 데 이상적입니다.

회사가 최근에 신제품을 출시했는데, Twitter를 사용하는 소비자들 사이에서 그 제품을 어떻게 받아들이는지 평가하고 싶다고 가정해 보겠습니다. 이 자습서에서는 트윗 수집을 위한 스크립트를 제공하는 AWSCloudFormation 스택을 시작합니다. Amazon S3에 트윗을 저장하고 Amazon EMR로 사용할 매퍼 파일을사용자 지정합니다. 그 다음에는 하둡 스트리밍 작업으로 구현되는 Python 자연 언어 도구 키트를 사용하는Amazon EMR 클러스터를 생성해 데이터를 분석합니다. 마지막으로 출력 파일을 검토해 트윗의 전반적인 정서를 종합 평가합니다.

본 자습서를 다 마치는 데는 일반적으로 1시간이 채 걸리지 않습니다. 사용한 리소스만큼만 지불하면 됩니다. 이 자습서에는 추가 비용을 유발하지 않도록 돕는 정리 단계가 포함되어 있습니다.

사전 조건

시작하기 전에 먼저 설정 (p. 2)의 단계를 완료해야 합니다.

작업• 1단계: Twitter 개발자 계정 생성 (p. 4)• 2단계: Amazon S3 버킷 생성 (p. 5)• 3단계: 감성 데이터 수집 및 저장 (p. 5)• 4단계: 매퍼 사용자 지정 (p. 9)• 5단계: Amazon EMR 클러스터 생성 (p. 10)• 6단계: 감정 분석 출력 검토 (p. 13)• 7단계: 정리 (p. 13)

1단계: Twitter 개발자 계정 생성분석할 트윗을 수집하기 위해서는 Twitter 개발자 사이트에서 계정을 만들고 Twitter API를 이용해 사용할 자격 증명을 생성해야 합니다.

Twitter 개발자 계정을 생성하려면

1. https://dev.twitter.com/user/login로 가서 Twitter 사용자 이름과 암호로 로그인합니다. 아직 Twitter 계정이 없다면, [Username] 필드 아래에 있는 [Sign up] 링크를 클릭하십시오.

2. Twitter 개발자 사이트를 사용해본 적이 없다면, 계정을 이용해 사이트를 인증하도록 유도합니다. 계속하려면 [Authorize app]을 클릭합니다.

4

Page 8: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석2단계: Amazon S3 버킷 생성

3. https://dev.twitter.com/apps의 [Twitter applications] 페이지로 가서 [Create a new application]을 클릭합니다.

4. 화면에 표시되는 지시 사항을 따릅니다. 애플리케이션의 [Name], [Description], 그리고 [Website]에서는어떤 텍스트를 지정해도 상관없습니다. 실제로 애플리케이션을 생성하는 것이 아니라 단지 이 자습서에서 사용할 자격 증명을 생성하는 것이기 때문입니다.

5. Twitter는 새 애플리케이션에 대한 세부 정보 페이지를 표시합니다. [<guilabel>Key and AccessTokens</guilabel>] 탭을 클릭하여 Twitter 개발자 자격 증명을 수집합니다. [Consumer key]와[Consumer secret]이 표시됩니다. 이 값들을 기록해 두십시오. 이 자습서에서 나중에 사용할 값입니다.자격 증명을 텍스트 파일로 저장하고자 할 수도 있습니다.

6. 페이지 맨 아래에 있는 [Create my access token]을 클릭합니다. 표시되는 [Access token]과 [Accesstoken secret]의 값을 기록하거나 이전 단계에서 생성한 텍스트 파일에 이 값들을 추가합니다.

언제라도 Twitter 개발자 자격 증명을 가져오려면, https://dev.twitter.com/apps로 가서 이 자습서에서 사용할목적으로 생성한 애플리케이션을 선택하십시오.

2단계: Amazon S3 버킷 생성Amazon EMR 작업은 오픈 소스 도구에서 제공하지 않는 매퍼 및 reducer 파일을 위해서뿐만 아니라 입력 및출력 데이터 파일을 위해서도 일반적으로 Amazon S3 버킷을 사용합니다. 이 자습서에서 사용할 목적으로데이터 파일과 사용자 지정 매퍼를 저장할 Amazon S3 버킷을 생성합니다.

콘솔을 사용하여 Amazon S3 버킷을 생성하려면

1. Amazon S3 콘솔을 엽니다.2. Create Bucket을 클릭합니다.3. [Create Bucket] 대화 상자에서 다음 작업을 수행하십시오.

a. 버킷에 mysentimentjob과 같은 이름을 지정합니다. 하둡의 요건을 충족하려면 버킷 이름이 소문자, 숫자, 마침표, 하이픈으로만 이루어져야 합니다.

b. 지역은 [US Standard]를 선택합니다.c. [Create]를 클릭합니다.

4. [All Buckets]에서 새 버킷을 선택한 다음 [Create Folder]를 클릭합니다. 텍스트 상자에서 폴더 이름을input으로 입력한 다음 [Enter] 키를 누르거나 확인 표시를 선택합니다.

5. 앞의 단계를 반복하여 input 폴더와 같은 수준에서 mapper라는 이름의 폴더를 생성합니다.6. 이 자습서에서 사용할 목적으로(모든 서비스에서 폴더를 사용할 수 있도록 하기 위해) 다음과 같이 폴더

를 퍼블릭으로 만듭니다.

a. input과 mapper 폴더를 선택합니다.b. [Actions]를 클릭한 후 [Make Public]을 클릭합니다.c. 확인 메시지가 표시되면 [OK]를 클릭합니다.

3단계: 감성 데이터 수집 및 저장이 단계에서는 AWS CloudFormation 템플릿을 이용해 인스턴스를 시작한 다음, 인스턴스 상의 명령줄 도구를 이용해 Twitter 데이터를 수집합니다. 생성한 Amazon S3 버킷에 데이터를 저장하는 데 인스턴스 상의 명령줄 도구를 사용할 수도 있습니다.

작업

5

Page 9: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석AWS CloudFormation을 이용해 인스턴스 시작

• AWS CloudFormation을 이용해 인스턴스 시작 (p. 6)• 인스턴스를 이용한 트윗 수집 (p. 7)• Amazon S3에 트윗 저장 (p. 8)

AWS CloudFormation을 이용해 인스턴스 시작AWS는 Amazon Linux AMI, 생성한 키 페어, 그리고 SSH를 사용해 모든 사람(0.0.0.0/0)에게 액세스를 허용하는 보안 그룹을 이용해, 단일 인스턴스를 시작하는 단순한 템플릿을 제공했습니다.

AWS CloudFormation 스택을 시작하려면

1. AWS CloudFormation 콘솔을 엽니다.2. 탐색 모음의 지역 선택자에서 [미국 동부(버지니아 북부)]이 선택되어 있는지 확인합니다.3. [Create Stack]을 클릭합니다.4. [Select Template] 페이지에서 다음을 수행합니다.

a. [Stack]의 [Name] 상자에서 기억하기 쉬운 이름을 지정합니다. 예를 들면 my-sentiment-stack가 있습니다.

b. [Template]에서 [Specify an Amazon S3 template URL]을 선택한 다음, 텍스트 상자에서https://s3.amazonaws.com/awsdocs/gettingstarted/latest/sentiment/sentimentGSG.template을 지정합니다.

c. [Next]를 클릭합니다.

5. [Specify Parameters] 페이지에서 다음을 수행하십시오.

a. [KeyPair]에서, Create a Key Pair (p. 2)에서 만든 키 페어의 이름을 지정합니다. 이 키 페어가 반드시 미국 동부(버지니아 북부) 리전에 있어야 합니다.

b. [TwitterConsumerKey], [TwitterConsumerSecret], [TwitterToken], 그리고 [TwitterTokenSecret]상자에서 Twitter 자격 증명을 지정합니다. 최상의 결과를 얻기 위해 Twitter 개발자 사이트 또는Twitter 자격 증명을 저장한 텍스트 파일에서 Twitter 자격 증명을 복사해 붙여넣습니다.

6

Page 10: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석인스턴스를 이용한 트윗 수집

Note

[Specify Parameters] 페이지의 Twitter 자격 증명 상자들의 순서는 Twitter 개발자 사이트의 표시 순서와 일치하지 않을 수 있습니다. 각 상자에 정확한 값을 붙여넣고 있는지 확인하십시오.

c. [Next]를 클릭합니다.6. [Options] 페이지에서 [Next]를 클릭합니다.7. [Review] 페이지에서 [I acknowledge that this template might cause AWS CloudFormation to create

IAM resources] 확인란을 선택한 다음, [Create]를 클릭하여 스택을 시작합니다.8. 새로운 AWS CloudFormation 스택이 CREATE_IN_PROGRESS 상태로 설정된 채 목록에 나타납니다.

Note

스택이 시작되는 데 몇 분 정도 걸립니다. 이 과정이 완료되었는지 확인하려면 [Refresh]를 클릭하십시오. 스택의 상태가 CREATE_COMPLETE인 경우, 사용할 준비가 된 것입니다.

인스턴스를 이용한 트윗 수집인스턴스는 Twitter API에 사용하기 위한 오픈 소스 패키지인 Tweepy로 사전 구성되었습니다. Tweepy 실행을 위한 Python 스크립트가 sentiment 디렉터리

Note

에 나타납니다.Tweepy 설치 중에 문제가 생길 수도 있습니다. 그 문제가 생기면, setup.py를 다음과 같이 편집하십시오.

install_reqs = parse_requirements('requirements.txt', session=uuid.uuid1())reqs = [str(req.req) for req in install_reqs]

을 삭제합니다.

import osfrom setuptools import setupwith open('requirements.txt') as f: reqs = f.read().splitlines()

을 추가합니다.

AWS CloudFormation 스택을 이용해 트윗을 수집하려면

1. [Outputs] 탭을 선택합니다. AWS CloudFormation이 EC2DNS 키로부터 생성한 Amazon EC2 인스턴스의 DNS 이름을 복사합니다.

2. SSH를 이용해 인스턴스에 연결합니다. 키 페어 및 사용자 이름을 ec2-user로 지정합니다. 더 자세한내용은 Linux 인스턴스에 연결 섹션을 참조하십시오.

3. 터미널 창에서 다음 명령을 실행합니다.

$ C:\> cd sentiment

4. 트윗을 수집하려면 term1이 검색어인 경우 다음 명령을 실행합니다. 수집기 스크립트는 대문자와 소문자를 구별하지 않는다는 것에 유의하십시오. 복수의 단어로 된 용어를 사용하려면 인용 부호로 묶으십시오.

7

Page 11: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석Amazon S3에 트윗 저장

$ C:\> python collector.py term1

예:

$ C:\> python collector.py kindle$ C:\> python collector.py "kindle fire"

5. [Enter] 키를 눌러 수집기 스크립트를 실행합니다. 터미널 창에는 다음과 같은 메시지가 나타날 것입니다.

Collecting tweets. Please wait.

Note

스크립트가 아직 실행 중일 때 SSH 연결이 중단된 경우에는, 인스턴스에 재접속해 nohup(예:nohup python collector.py > /dev/null &)으로 스크립트를 실행하십시오.

스크립트는 500개의 트윗을 수집하는데, 몇 분 정도 걸릴 수 있습니다. 현재 Twitter에서 인기를 끌지 못하는주제를 검색하는 경우(또는 500개 이상의 트윗을 수집하기 위해 스크립트를 편집한 경우)에는 스크립트 실행 시간이 더 길어집니다. 언제든지 [Ctrl+C]를 눌러 작업을 중지할 수 있습니다.

스크립트 실행이 끝나면 터미널 창에 다음과 같은 메시지가 나타납니다.

Finished collecting tweets.

Amazon S3에 트윗 저장감성 분석 스택은 Amazon S3을 위한 명령줄 도구인 s3cmd로 사전 구성되어 있습니다. 2단계: Amazon S3버킷 생성 (p. 5)에서 생성한 버킷에 트윗을 저장하기 위해 s3cmd를 사용합니다.

수집한 트윗을 버킷에 저장하려면

1. SSH 창에서 다음 명령을 실행합니다. (현재 디렉터리는 여전히 sentiment이어야 합니다. 그렇지 않다면, cd를 이용해 sentiment 디렉터리를 검색하십시오.)

$ C:\> ls

tweets.date-time.txt라는 이름의 파일이 보입니다. 여기서 date와 time은 스크립트가 실행된 시점을 나타냅니다. 이 파일에는 검색어와 일치된 트윗의 ID 번호와 텍스트 전문이 들어 있습니다.

2. Twitter 데이터에 Amazon S3을 복사하려면 다음 명령을 실행합니다. 여기서 tweet-file은 이전 단계에서 찾은 파일이고, your-bucket은 버킷의 이름입니다.

Important

반드시 후행 슬래시를 첨가하여 input이 폴더임을 나타내야 합니다. 그렇게 하지 않으면Amazon S3이 기본 S3 버킷에 input라는 객체를 생성합니다.

$ C:\> s3cmd put tweet-file s3://your-bucket/input/

예:

$ C:\> s3cmd put tweets.Nov12-1227.txt s3://mysentimentjob/input/

8

Page 12: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석4단계: 매퍼 사용자 지정

3. 파일이 Amazon S3에 업로드되었는지 확인하려면 다음 명령을 실행하십시오.

$ C:\> s3cmd ls s3://your-bucket/input/

또한 Amazon S3 콘솔을 이용해서 버킷 및 폴더의 콘텐츠를 볼 수 있습니다.

4단계: 매퍼 사용자 지정하둡 스트리밍 프로그램을 직접 생성할 때는 Amazon EMR 개발자 안내서의 스트리밍 클러스터를 이용한 데이터 처리에 기술된 대로 매퍼 및 reducer 실행 파일들을 작성해야 합니다. 이 자습서에서는 자신의 Twitter검색어에 맞게 사용자 지정할 수 있는 매퍼 스크립트를 제공합니다.

매퍼를 사용자 지정하려면

1. 컴퓨터에서 텍스트 편집기를 엽니다. 새 파일에 다음의 스크립트를 복사해 붙여넣기한 다음,sentiment.py라는 이름으로 저장합니다.

#!/usr/bin/python

import cPickle as pickleimport nltk.classify.utilfrom nltk.classify import NaiveBayesClassifierfrom nltk.tokenize import word_tokenizeimport sys

sys.stderr.write("Started mapper.\n");

def word_feats(words): return dict([(word, True) for word in words])

def subj(subjLine): subjgen = subjLine.lower() # Replace term1 with your subject term subj1 = "term1" if subjgen.find(subj1) != -1: subject = subj1 return subject else: subject = "No match" return subject

def main(argv): classifier = pickle.load(open("classifier.p", "rb")) for line in sys.stdin: tolk_posset = word_tokenize(line.rstrip()) d = word_feats(tolk_posset) subjectFull = subj(line) if subjectFull == "No match": print "LongValueSum:" + " " + subjectFull + ": " + "\t" + "1" else: print "LongValueSum:" + " " + subjectFull + ": " + classifier.classify(d) + "\t" + "1"

if __name__ == "__main__": main(sys.argv)

9

Page 13: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석5단계: Amazon EMR 클러스터 생성

2. term1을 3단계: 감성 데이터 수집 및 저장 (p. 5)에서 사용한 검색어로 교체한 다음 파일을 저장합니다.

Important

파일의 줄 간격을 변경하지 마십시오. 잘못된 들여쓰기는 하둡 스트리밍 프로그램이 작동하지않는 원인이 됩니다.

3. Amazon S3 콘솔을 열어서 2단계: Amazon S3 버킷 생성 (p. 5)에서 생성한 mapper 폴더를 찾아냅니다.

4. [Upload]를 클릭한 다음 화면상의 지시 사항을 수행하여 사용자 지정된 sentiment.py 파일을 업로드합니다.

5. 파일을 선택하고 [Actions]를 클릭한 다음 [Make Public]을 클릭합니다.

5단계: Amazon EMR 클러스터 생성Amazon EMR을 이용해 소프트웨어, 부트스트랩 작업, 작업 단계로 클러스터를 구성할 수 있습니다. 이 자습서에서는 하둡 스트리밍 프로그램을 실행합니다. Amazon EMR에서 하둡 스트리밍으로 클러스터를 구성할때 지원 파일뿐만 아니라 매퍼 및 reducer도 지정합니다. 다음 리스트는 이 자습서를 위해 사용할 파일들의개요를 제공합니다.

• 매퍼를 위해서는 이전 단계에서 사용자 지정된 파일을 사용합니다.• reducer 메서드를 위해서는 사전 정의된 하둡 패키지 aggregate를 사용합니다. 종합 패키지에 대한 자세

한 내용은 하둡 문서 를 참조하십시오.• 감성 분석에는 대개의 경우 특정 형태의 자연 언어 처리가 포함됩니다. 이 자습서에서는 인기 있는 Python

플랫폼인 자연 언어 도구 키트(NLTK)를 사용합니다. NLTK Python 모듈을 설치하기 위해서는 AmazonEMR 부트스트랩 작업을 이용합니다. 부트스트랩 작업은 Amazon EMR이 프로비저닝하고 구성하는 인스턴스에 사용자 정의 소프트웨어를 로드합니다. 자세한 내용은 Amazon EMR 개발자 안내서의 부트스트랩작업 생성을 참조하십시오.

• NLTK 모듈과 함께 Amazon S3 버킷에서 제공된 자연 언어 분류기 파일을 사용합니다.• 작업의 입력 데이터 및 출력 파일을 위해서는 생성한 Amazon S3 버킷(지금은 수집한 트윗을 담고 있는)을

사용합니다.

이 자습서에서 사용되는 파일들은 단지 설명을 위한 것임에 유의하십시오. 직접 감성 분석을 할 때는 직접 매퍼를 작성하여 요건에 맞는 감성 모델을 구축해야 합니다. 감성 모델 구축에 대한 자세한 내용은 NLTK 사이트에서 무료로 제공되는 Natural Language Processing with Python의 Learning to Classify Text를 참조하십시오.

클러스터를 생성하려면

1. Amazon EMR 콘솔을 엽니다.2. [Create cluster]를 클릭합니다.3. [Cluster Configuration]에서 클러스터의 이름을 지정하거나 [My cluster]의 기본값을 그대로 둡니다.

[Termination protection]을 [No]로 설정하고 [Logging Enabled] 확인란의 선택을 취소합니다.

10

Page 14: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석5단계: Amazon EMR 클러스터 생성

Note

프로덕션 환경에서는 로깅과 디버깅이 Amazon EMR 단계 또는 프로그램의 오류 또는 비효율을 분석하는 유용한 도구가 될 수 있습니다. 자세한 내용은 Amazon EMR 개발자 안내서의 문제 해결을 참조하십시오.

4. [Software Configuration]에서 [Hadoop distribution]의 기본값으로 설정된 Amazon을 그대로 두고 [AMIversion]을 3.4.0으로 선택합니다. [Applications to be installed]에서는 각각의 X를 클릭하여 목록에서Hive, Pig, Hue를 삭제합니다.

5. [File System Configuration]과 [Hardware Configuration]에서는 기본값을 그대로 두십시오.6. [Security and Access]의 [EC2 key pair]에서 해당 키 페어를 선택합니다. IAM 사용자 액세스는 기본값을

유지합니다. Amazon EMR을 처음 사용하는 경우 [Create Default Role]을 클릭하여 기본값인 EMR 역할을 생성한 다음 [Create Default Role]을 클릭하여 기본값인 EC2 인스턴스 프로필을 생성하십시오.

7. [Bootstrap Actions]에서 다음을 수행합니다.

a. [Add bootstrap action] 목록에서 [Custom action]을 선택합니다. 이로써 클러스터에 자연 언어 도구키트를 설치하고 구성하는 사용자 지정 작업을 추가합니다.

b. [Configure and add]를 클릭합니다.c. [Add Bootstrap Action] 대화 상자의 [Amazon S3 location] 상자에서 다음 경로를 복사해 붙여넣습니

다.

s3://awsdocs/gettingstarted/latest/sentiment/config-nltk.sh

아니면 다음의 스크립트를 새 파일에 복사해 붙여넣고, 그 파일을 Amazon S3 버킷에 업로드하여그 위치를 대신 사용합니다.

#!/bin/bash sudo yum -y install git gcc python-dev python-develsudo pip install -U numpy sudo pip install pyyaml nltk sudo pip install -e git://github.com/mdp-toolkit/mdp-toolkit#egg=MDP sudo python -m nltk.downloader -d /usr/share/nltk_data all

d. Add를 클릭합니다. 최종 결과는 다음과 같이 표시됩니다.

11

Page 15: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석5단계: Amazon EMR 클러스터 생성

8. [Steps]에서 다음을 수행합니다.

a. [Auto-terminate]를 [Yes]로 설정합니다.b. [Add step] 목록에서 [Streaming program]을 선택한 다음, [Configure and add]를 클릭합니다.c. [Add Step] 대화 상자에서 다음과 같이 작업을 구성하여 [your-bucket]을 앞서 생성한 Amazon

S3 버킷의 이름으로 교체한 다음, [Add]를 클릭합니다.

• [Name]을 Sentiment analysis로 설정합니다.• [Mapper]를 s3://your-bucket/mapper/sentiment.py로 설정합니다.• [Reducer]를 aggregate로 설정합니다.• [Input S3 location]을 s3://your-bucket/input/으로 설정합니다.• [Output S3 location]을 s3://your-bucket/output/으로 설정합니다(이 폴더는 존재해서는 안 됩니

다).• [Arguments]를 -cacheFile s3://awsdocs/gettingstarted/latest/sentiment/classifier.p#classifier.p로

설정하십시오.• [Action on failure]를 [Continue]로 설정하십시오.

12

Page 16: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석6단계: 감정 분석 출력 검토

9. 페이지 맨 아래에 있는 [Create cluster]를 클릭합니다.

새 클러스터의 개요가 Starting 상태로 나타납니다. Amazon EMR이 클러스터를 위한 EC2 인스턴스를 프로비저닝하는 데 몇 분이 걸립니다.

6단계: 감정 분석 출력 검토Amazon EMR 콘솔에서 클러스터의 상태가 [Waiting: Waiting after step completed]일 때 결과를 검토할 수있습니다.

스트리밍 프로그램 결과를 검토하려면

1. Amazon S3 콘솔을 열어서 2단계: Amazon S3 버킷 생성 (p. 5)에서 생성한 버킷을 찾아냅니다. 버킷에 새 output 폴더가 보입니다. 상단 오른쪽 구석에 있는 새로 고침 화살표를 클릭하면 새 버킷을 볼수 있습니다.

2. 작업 출력은 _SUCCESS라는 이름의 비어 있는 상태 파일과 몇 개의 part-xxxxx로 분할되어 있습니다.part-xxxxx 파일들에는 하둡 스트리밍 프로그램에서 생성된 감성 측정치가 담겨 있습니다.

3. 출력 파일을 선택하고 [Actions]를 클릭한 다음 [Download]를 클릭합니다. 팝업 창에서 링크를 마우스 오른쪽 버튼으로 클릭한 다음 [Save Link As]를 클릭하여 파일을 다운로드합니다.

각 출력 파일마다 이 단계를 반복합니다.4. 텍스트 편집기에서 파일들을 엽니다. 검색어에 대한 긍정적 트윗 및 부정적 트윗의 합계뿐만 아니라 분

류기에서 긍정적인 또는 부정적인 용어 어느 것에도 일치하지 않은 트윗(트윗의 실제 텍스트에서 그런것이 아니라 그 주제어가 다른 필드에 있었기 때문에 보통 이런 결과가 나타납니다)의 합계도 볼 수 있습니다.

예:

kindle: negative 13kindle: positive 479No match: 8

이 예에서는 긍정적 트윗이 압도적으로 많습니다. 대부분의 경우 긍정 및 부정의 합계는 서로 비슷하게나타납니다. 자신만의 감성 분석 작업을 할 경우에는 가능한 한 정확한 측정치를 얻기 위해 몇 가지 서로다른 검색어를 사용해 몇 번의 기간에 걸쳐 데이터를 수집하고 비교하고자 합니다.

7단계: 정리계정에 추가 요금이 발생하는 것을 막기 위해 이 자습서에서 생성한 AWS 리소스는 삭제해야 합니다.

AWS CloudFormation 스택을 삭제하려면

1. AWS CloudFormation 콘솔을 엽니다.2. 감성 스택을 선택하고 [Delete Stack]을 클릭합니다.3. 확인 메시지가 나타나면 Yes, Delete를 클릭합니다.

하둡 스트리밍 프로그램을 실행하고 프로그램에서 여러 단계를 실행한 후에 자동 종료하도록 설정해 놓았기때문에 클러스터는 처리가 완료되었을 때 자동으로 종료되었어야 합니다.

클러스터가 종료되었는지 확인하려면

1. Amazon EMR 콘솔을 엽니다.

13

Page 17: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석7단계: 정리

2. [Cluster List]를 클릭합니다.3. 클러스터 목록에서 클러스터의 [Status]는 [Terminated]이어야 합니다. 그렇지 않다면 클러스터를 선택

하고 [Terminate]를 클릭하십시오.

14

Page 18: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석1단계: Amazon EMR 클러스터 생성

자습서: 웹 서버 로그 분석인기 전자 상거래 웹 사이트를 호스팅하는데 Apache 웹 로그를 분석해 사람들이 사이트에 대해 어떤 생각을갖고 있는지 알아보고 싶다고 가정합니다. 또한 온라인 광고 캠페인 중 어떤 것이 온라인 상점에 가장 많은트래픽을 유발하는지 알고 싶습니다.

그러나 웹 서버 로그가 너무 커서 MySQL 데이터베이스로 가져올 수 없을 뿐만 아니라 로그 데이터가 관계형형식으로 되어 있지 않습니다. 그 데이터를 분석할 수 있는 또 다른 방법이 있습니다.

Amazon EMR은 하둡과 Hive 같은 오픈 소스 애플리케이션을 Amazon Web Services와 통합함으로써,Apache 웹 로그 같은 대규모 데이터를 분석하는 데 유용한 확장 가능하고 효율적인 아키텍처를 제공합니다.

이 자습서에서는 Amazon S3에서 데이터를 가져와 Amazon EMR 클러스터를 생성할 것입니다. 그 다음에는클러스터의 마스터 노드에 연결하고, 그곳에서 Hive를 실행함으로써 단순화된 SQL 구문을 이용해 Apache로그를 쿼리할 것입니다. Hive에 대한 자세한 내용은 http://hive.apache.org/를 참조하십시오.

본 자습서를 다 마치는 데는 일반적으로 1시간이 채 걸리지 않습니다. 사용하는 리소스에 대해서만 요금을지불하면 되고, 자습서에는 불필요한 비용이 발생하지 않도록 돕는 정리 단계가 포함되어 있습니다.

사전 조건

시작하기 전에 먼저 설정 (p. 2)의 단계를 완료해야 합니다.

작업• 1단계: Amazon EMR 클러스터 생성 (p. 15)• 2단계: 마스터 노드 연결 (p. 17)• 3단계: Hive의 시작 및 구성 (p. 18)• 4단계: Hive 테이블 생성 및 HDFS로 데이터 로드 (p. 18)• 5단계: Hive 쿼리 (p. 19)• 6단계: 정리 (p. 20)

1단계: Amazon EMR 클러스터 생성Amazon EMR을 이용해 소프트웨어, 부트스트랩 작업, 작업 단계로 클러스터를 구성할 수 있습니다. 이 자습서에서는 하둡 스트리밍 프로그램을 실행합니다.

클러스터를 생성하려면

1. Amazon EMR 콘솔을 엽니다.2. [Create cluster]를 클릭합니다.3. [Cluster Configuration]에서 [Cluster name]을 지정하거나 My cluster의 기본값을 그대로 둡니다.

[Termination protection]을 [No]로 설정하고 [Logging Enabled] 확인란의 선택을 취소합니다.

15

Page 19: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석1단계: Amazon EMR 클러스터 생성

Note

프로덕션 환경에서는 로깅과 디버깅이 Amazon EMR 단계 또는 프로그램의 오류 또는 비효율을 분석하는 유용한 도구가 될 수 있습니다. 자세한 내용은 Amazon EMR 개발자 안내서의 문제 해결을 참조하십시오.

4. [Software Configuration]에서 [Hadoop distribution]의 기본값 설정, [Amazon], 그리고 최신 [AMI version]을 그대로 둡니다. [Applications to be installed]에서 [Hive]의 기본값 설정을 그대로 둡니다. X를 클릭해목록에서 Pig를 제거합니다.

5. [Hardware Configuration]에서 기본 설정을 그대로 둡니다.

Note

실제 애플리케이션에서 데이터를 분석할 때는, 노드의 수를 늘려 처리 능력을 향상시키고 컴퓨팅 시간을 줄이길 원할 수도 있습니다. 또한 스팟 인스턴스를 이용해 비용을 더 줄이길 원할 수도 있습니다. 자세한 내용은 Amazon EMR 개발자 안내서의 Lowering Costs with SpotInstances 섹션을 참조하십시오.

6. [Security and Access]의 [EC2 key pair]에서 해당 키 페어를 선택합니다. IAM 사용자 액세스는 기본값을유지합니다. Amazon EMR을 처음 사용하는 경우 [Create Default Role]을 클릭하여 기본값인 EMR 역할을 생성한 다음, [Create Default Role]을 클릭하여 기본값인 EC2 인스턴스 프로필을 생성하십시오.

16

Page 20: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석2단계: 마스터 노드 연결

7. [Bootstrap Actions] 및 [Steps]는 기본 설정을 유지합니다. 부트스트랩 작업 및 단계들을 통해 애플리케이션을 사용자 지정하고 구성할 수 있습니다. 이 자습서에서는 Hive를 사용하는데, 이는 구성에 이미 포함되어 있습니다.

8. 페이지 맨 아래에 있는 [Create cluster]를 클릭합니다.

새 클러스터의 개요가 나타나는 시점에는 그 상태가 Starting으로 되어 있습니다. Amazon EMR이 클러스터를 위한 Amazon EC2 인스턴스를 프로비저닝하고 그 상태를 Waiting으로 변경하는 데 몇 분이걸립니다.

2단계: 마스터 노드 연결클러스터의 상태가 Waiting이면 마스터 노드에 연결할 수 있습니다. 연결하는 방식은 사용하는 컴퓨터의운영 체제에 따라 다릅니다. 운영 체제에 의한 단계별 지침을 확인하려면, [SSH]를 클릭하십시오.

마스터 노드에 성공적으로 연결되었다면 환영 메시지와 함께 다음과 같은 프롬프트가 뜹니다.

-----------------------------------------------------------------------------

Welcome to Amazon EMR running Hadoop and Amazon Linux. Hadoop is installed in /home/hadoop. Log files are in /mnt/var/log/hadoop. Check/mnt/var/log/hadoop/steps for diagnosing step failures.

The Hadoop UI can be accessed via the following commands:

ResourceManager lynx http://ip-172-16-43-158:9026/ NameNode lynx http://ip-172-16-43-158:9101/ -----------------------------------------------------------------------------[hadoop@ip-172-16-43-158 ~]$

17

Page 21: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석3단계: Hive의 시작 및 구성

3단계: Hive의 시작 및 구성Apache Hive는 데이터 웨어하우스 애플리케이션으로서, 유사 SQL 언어로 Amazon EMR 클러스터 데이터를쿼리하는 데 사용할 수 있습니다. 클러스터를 구성할 때 Hive를 선택하므로 마스터 노드 상에서 사용할 준비가 됩니다.

Hive를 대화식으로 사용해 웹 서버 로그 데이터를 쿼리하려면, 약간의 추가 라이브러리를 로드해야 합니다.추가 라이브러리는 마스터 노드 상에서 hive_contrib.jar라는 Java 아카이브 파일에 들어 있습니다. 라이브러리를 로드할 때 Hive는 자신이 시작하는 map-reduce 작업과 함께 라이브러리들을 묶어 쿼리를 처리합니다.

마스터 노드에서 Hive를 시작하고 구성하려면

1. 마스터 노드 터미널 창의 hadoop 프롬프트에서 다음의 명령을 실행합니다.

[hadoop@ip-172-16-43-158 ~]$ hive

Tip

hive 명령어를 찾을 수 없는 경우에는 마스터 노드에 연결할 때 ec2-user가 아닌 하하을 사용자이름으로 지정했는지 확인하십시오. 그렇게 하지 않았다면, 이 연결을 종료하고 마스터 노드에다시 연결하십시오.

2. hive> 프롬프트에서 다음 명령을 실행합니다.

hive> add jar /home/hadoop/hive/lib/hive_contrib.jar;

Tip

/home/hadoop/hive/hive_contrib.jar을 찾을 수 없다면, 선택한 AMI에 문제가 있을 수있습니다. 정리 (p. 20) 섹션의 지침을 따른 다음, 다른 AMI 버전을 이용해 본 자습서를 다시시작하십시오.

명령 실행이 완료되면, 다음과 같은 확인 메시지가 나타납니다.

Added /home/hadoop/hive/lib/hive_contrib.jar to class pathAdded resource: /home/hadoop/hive/lib/hive_contrib.jar

4단계: Hive 테이블 생성 및 HDFS로 데이터 로드Hive가 데이터와 상호 작용하도록 하려면, 현재 형식의 데이터(Apache 웹 로그의 경우에는 텍스트 파일)를데이터베이스 테이블로 재현할 수 있는 형식으로 변환해야 합니다. Hive는 serializer/deserializer(SerDe)를이용해 이러한 변환 작업을 수행합니다. SerDes는 다양한 데이터 형식으로 존재합니다. 사용자 정의 SerDe를 작성하는 방법에 대해서는 Apache Hive Developer Guide를 참조하십시오.

이 예제에서 사용할 SerDe는 정규식을 사용해 로그 파일 데이터를 분석합니다. 이는 Hive 오픈 소스 커뮤니티에서 유래합니다. SerDe를 사용하면 로그 파일을 테이블로 정의할 수 있고, 본 자습서에서 나중에 유사SQL 문들을 이용해 그 테이블을 쿼리할 수 있습니다. Hive가 데이터를 로드한 후에는 Hive 세션과 SSH 연결을 종료하더라도 Amazon EMR 클러스터가 실행되는 한 데이터는 HDFS 스토리지에 지속적으로 남아 있습니다.

Apache 로그 파일 데이터를 Hive 테이블로 변환하려면

1. 다음의 복수 명령줄을 복사합니다.

18

Page 22: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석5단계: Hive 쿼리

CREATE TABLE serde_regex( host STRING, identity STRING, user STRING, time STRING, request STRING, status STRING, size STRING, referer STRING, agent STRING)ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'WITH SERDEPROPERTIES ( "input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*)(?: ([^ \"]*|\"[^\"]*\") ([^ \"]*|\"[^\"]*\"))?", "output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s") LOCATION 's3://elasticmapreduce/samples/pig-apache/input/';

2. hive 명령 프롬프트에서 명령어를 붙여 넣기(터미널 창에서 Ctrl+Shift+V를 이용하거나 PuTTY 창에서마우스 오른쪽 버튼을 클릭합니다)한 다음 엔터 키를 누릅니다.

명령어 실행이 완료되면, 다음과 같은 메시지가 표시됩니다.

OKTime taken: 12.56 seconds

LOCATION 매개변수가 Amazon S3에서 일련의 샘플 Apache 로그 파일의 위치를 지정합니다. 자신의Apache 웹 서버 로그 파일을 분석하려면, 예시 명령어의 URL을 Amazon S3에 있는 로그 파일의 위치로 교체하십시오.

5단계: Hive 쿼리Hive를 이용해 Apache 로그 파일 데이터를 쿼리할 수 있습니다. Hive는 쿼리를 하둡 MapReduce 작업으로변환한 다음 Amazon EMR 클러스터에서 이를 실행합니다. 하둡 작업이 실행되면 상태 메시지가 나타납니다.

Hive SQL은 SQL의 하위 집합입니다. SQL을 안다면, Hive 쿼리를 쉽게 생성할 수 있습니다. 쿼리 구문에 대한 자세한 내용은 Hive Language Manual을 참조하십시오.

다음은 약간의 예시 쿼리입니다.

Example 1: Apache 웹 서버 로그 파일에서 행의 수를 셉니다.

select count(1) from serde_regex;

쿼리가 끝나면 다음과 유사하게 출력됩니다.

Total MapReduce CPU Time Spent: 13 seconds 860 msecOK239344Time taken: 86.92 seconds, Fetched: 1 row(s)

Example 2: 로그 파일 데이터의 한 행에서 모든 필드를 반환합니다.

select * from serde_regex limit 1;

19

Page 23: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석6단계: 정리

쿼리가 끝나면 다음과 유사하게 출력됩니다.

OK66.249.67.3 - - 20/Jul/2009:20:12:22 -0700] "GET /gallery/main.php?g2_controller=exif.SwitchDetailMode&g2_mode=detailed&g2_return=%2Fgallery%2Fmain.php%3Fg2_itemId%3D15741&g2_returnName=photo HTTP/1.1" 302 5"-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"Time taken: 4.444 seconds, Fetched: 1 row(s)

Example 3: IP 주소 192.168.1.198의 호스트로부터 오는 요청의 수를 셉니다.

select count(1) from serde_regex where host="192.168.1.198";

쿼리가 끝나면 다음과 유사하게 출력됩니다.

Total MapReduce CPU Time Spent: 13 seconds 870 msecOK46Time taken: 73.077 seconds, Fetched: 1 row(s)

6단계: 정리계정의 추가 요금이 발생을 막기 위해 본 자습서에서 생성한 다음의 AWS 리소스는 삭제하십시오.

마스터 노드와의 연결을 해제하려면

1. 터미널 또는 PuTTY 창에서 CTRL+C를 눌러 Hive에서 빠져나옵니다.2. SSH 명령 프롬프트에서 exit를 실행합니다.3. 터미널 또는 PuTTY 창을 닫습니다.

클러스터를 종료하려면

1. Amazon EMR 콘솔을 엽니다.2. [Cluster List]를 클릭합니다.3. 클러스터 이름을 선택한 다음, [Terminate]를 클릭합니다. 확인 메시지가 나타나면 [Terminate]를 클릭합

니다.

20

Page 24: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석

추가 빅 데이터 옵션본 사용 설명서에 있는 자습서는 Amazon EMR을 이용해 빅 데이터를 다루는 방법에 관한 두 가지 예를 보여줍니다. 이 페이지에서는 기타 옵션을 안내합니다.

• 위치별 Twitter 감성 분석

AWS 트윗의 내용만을 분석했습니다. 여기에 지리적 데이터를 수집해 특정 지역 또는 우편번호에 따른 데이터를 생성함으로써 위치별 감성 분석을 할 수도 있습니다.

Twitter 데이터의 지리적 측면에 대한 자세한 내용은 reverse_geocode resource에 대한 설명과 같은Twitter API 리소스 문서를 참조하십시오.

• 말뭉치 및 데이터 탐색

Natural Language Toolkit에는 프로젝트 구텐베르크 작품들에서부터 환자 주의사항 매뉴얼에 이르는 몇가지 말뭉치가 포함되어 있습니다. Stanford Large Network Dataset Collection에는 다양한 유형의 감성 데이터뿐만 아니라 Amazon 제품 리뷰 데이터까지 저장되어 있습니다. 코넬대학교에서는 풍부한 영화 리뷰데이터를 얻을 수 있습니다. 일반적인 Twitter 데이터보다는 더 초점을 맞춘 데이터 세트를 활용하는 것이더 정확한 결과를 산출한다는 것을 알고 계실 것입니다.

• 기타 분류기 모델 사용

AWS는 감성 데이터에 나이브 베이지안 분류기를 적용했습니다. Natural Language Toolkit은 최대 엔트로피(maximum entropy, maxent), scikitlearn 모듈을 통한 서포트 벡터 머신(support vector machine, SVM)과 같은 몇 가지 분류 알고리즘을 지원합니다. 분석 중인 데이터의 유형과 평가하고자 하는 특성에 따라 다른 알고리즘이 더 나은 결과를 산출할 수도 있습니다. 자세한 내용은 Natural Language Processing withPython이라는 책의 Learning to Classify Text를 참조하십시오.

• Hive 쿼리 스크립트

데이터를 대화식으로 질의하는 것은 결과를 얻는 가장 직접적인 방법이며, 대화식 질의는 데이터를 탐색하고 접근 방식을 정교하게 하는 데 도움이 될 수 있습니다. 규칙적으로 실행하고 싶은 일련의 질의를 생성한 후에는 Hive 명령어를 스크립트로 저장하고 그 스크립트를 Amazon S3에 업로드함으로써 그 과정을자동화할 수 있습니다. Hive 스크립트를 이용해 클러스터를 시작하는 방법에 대한 자세한 정보는 AmazonEMR 개발자 안내서의 Hive 클러스터 시작을 참조하십시오.

• Hive 대신 Pig를 이용한 데이터 분석

Amazon EMR은 Pig를 비롯한 다양한 오픈 소스 도구에 대한 액세스를 제공하는데, Pig Latin이라는 언어를 사용해 map-reduce 작업을 추상화합니다. Pig로 로그 파일을 분석하는 방법에 관한 예시는 Apache Pig과 Amazon Elastic MapReduce를 이용한 로그 파일 분석에서 확인할 수 있습니다.

• 데이터 분석을 위한 사용자 정의 애플리케이션 생성

요건을 충족하는 오픈 소스 도구를 찾을 수 없는 경우에는 사용자 정의 하둡 map-reduce 애플리케이션을작성해 Amazon EMR에서 실행할 수 있습니다. 자세한 내용은 Amazon EMR 개발자 안내서의 데이터 처리를 위한 하둡 애플리케이션 실행을 참조하십시오.

아니면 표준 입력에서 데이터를 읽는 하둡 스트리밍 작업을 생성할 수도 있습니다. 해당 예시는 이 설명서에서 다음(자습서: 감성 분석 (p. 4))을 참조하십시오. 세부 정보는 Amazon EMR 개발자 안내서의 스트리밍 클러스터 시작을 참조하십시오.

21

Page 25: AWS 시작 - 빅 데이터 분석 · PDF fileAWS 시작 빅 데이터 분석 Amazon's trademarks and trade dress may not be used in connection with any product or service that is not

AWS 시작 빅 데이터 분석

관련 리소스다음 표는 AWS로 작업 시 유용한 일부 AWS 리소스를 나열합니다.

Resource 설명

AWS 제품 및 서비스 AWS가 제공하는 제품 및 서비스에 대한 정보.

AWS 설명서 서비스 소개, 서비스 기능 및 API 참조 등, 각 AWS 제품에 대한 공식 문서

AWS 토론 포럼 Amazon Web Services에 대한 기술적인 질문을 논의할 수 있는 커뮤니티 기반 포럼

문의처 청구, 이벤트, 오용 등, 계정 관련 질문에 대한 기본 연락처 기술적 질문의 경우 토론 포럼을 이용하십시오.

AWS 지원 센터 AWS 지원 사례를 생성 및 관리하는 곳. 또한 포럼, 기술 FAQ,서비스 상태 및 AWS Trusted Advisor 등의 기타 유용한 자료에 대한 링크가 있습니다.

AWS Support 클라우드에서 애플리케이션을 구축 및 실행하도록 지원하는 1대 1, 빠른 응답 지원 채널인 AWS 지원 홈 페이지.

AWS 아키텍처 센터 AWS 클라우드에서 확장성과 신뢰성 높은 애플리케이션을 개발하는 데 필요한 지침과 모범 사례를 제공합니다. 이들 자료는 AWS 플랫폼, 관련 서비스 및 기능을 이해하는 데 유용합니다. 또한, AWS 인프라에서 실행되는 시스템의 설계 및 구현을위한 구조적인 지침을 제공합니다.

AWS 보안 센터 보안 기능 및 리소스에 대한 정보를 제공합니다.

AWS 경제 센터 Amazon Web Services와 다른 IT 인프라 솔루션의 비용을 비교할 수 있는 정보, 도구, 리소스에 액세스할 수 있습니다.

AWS 백서 아키텍처, 보안, 경제 등의 주제를 다루는 기술 백서를 제공합니다. 이들 백서는 Amazon 팀, 고객, 솔루션 제공업체들이 작성했습니다.

AWS 블로그 새로운 서비스 및 기존 서비스의 업데이트에 관한 블로그 포스트를 제공합니다.

AWS Podcast 새로운 서비스, 기존 서비스, 팁에 관한 podcast를 제공합니다.

22