hadoop overview

Post on 20-May-2015

2.250 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Hadoop Overview

Cecil(hyeonseok.c.choi@gmail.com)

13년 10월 21일 월요일

PIG

이런것들이 대체 무엇이냐?

13년 10월 21일 월요일

What is Big Data?

13년 10월 21일 월요일

데이터의 규모에 맞춘 단순한 정의

기존 데이터 관리 도구로는 감당할 수 없을 정도 규모의 데이터

13년 10월 21일 월요일

TDWI에서 정의한 BIG Data의 3대요소

• Volume✓ 수십 TB or 수십 PB 이상✓ 기존의 솔루션으로 처리하기 힘든 정도의 크기

• Velocity✓ 대용량의 데이터에 대해 서비스의 요구사항에 맞게 실시간/배치 처리 가능

• Variety✓ 정형, 반정형 뿐만 아니라 비정형 데이터를 핸들링

이 중 2가지 이상을 만족하면 Big data

이미지 출처: What is Big Data?, Datameer, <http://www.datameer.com/product/big-data.html>

13년 10월 21일 월요일

왜 빅 데이터인가?

13년 10월 21일 월요일

“일반적으로 더 많은 데이터가 더 좋은 알고리즘보다 낫다”

-아난드 라자라만

ex) 자동 번역 프로그램 IBM vs. Google

13년 10월 21일 월요일

IBM의 자동 번역 프로그램

컴퓨터가 명사, 형용사, 동사 등 단어와 어문의 문법적 구조를 인식하여 번역하는 방식

13년 10월 21일 월요일

IBM의 자동 번역 프로그램

컴퓨터가 명사, 형용사, 동사 등 단어와 어문의 문법적 구조를 인식하여 번역하는 방식

지난 40년간 개발하였으나 실패!!

13년 10월 21일 월요일

Google 번역

수억건의 문장과 번역문을 데이터베이스화하여 번역시 유사한 문장과 어구를 데이터베이스에서

추론해나가는 통계적 기법을 적용

13년 10월 21일 월요일

Google 번역

수억건의 문장과 번역문을 데이터베이스화하여 번역시 유사한 문장과 어구를 데이터베이스에서

추론해나가는 통계적 기법을 적용

전 세계 58개의 언어간의 자동 번역 프로그램 개발에 성공

13년 10월 21일 월요일

그럼 빅 데이터를 시작해 볼까?

13년 10월 21일 월요일

빅 데이터를 처리하기 위해서는...단일 장비로는 한계가 있다

13년 10월 21일 월요일

빅 데이터를 처리하기 위해서는...단일 장비로는 한계가 있다

분산 처리가 답임!!

13년 10월 21일 월요일

✓ 처리할 작업을 어떻게 나눌 것인가?✓ 데이터를 어떻게 나누어 처리할 것인가?✓ Failure는 어떻게 다룰 것인가?

분산처리에 따른 이슈

13년 10월 21일 월요일

분산 처리

분산 처리를 위한 여러가지 방법이 존재

13년 10월 21일 월요일

분산 처리

But, 너무 복잡!!13년 10월 21일 월요일

분산 처리와 장애에 대한 투명성을 제공하기 위한MapReduce라는 제한된 프로그래밍 모델을 논문으로 공개

MapReduce

13년 10월 21일 월요일

더그 커팅(Doug Cutting)이 구글이 논문으로 발표한 GFS(Google File System),

MapReduce를 구현한 결과물http://hadoop.apache.org/

Hadoop = HDFS(GFS) + MapReduce

13년 10월 21일 월요일

그럼 Hadoop으로...

13년 10월 21일 월요일

대용량 파일을 안전하게 저장하고, 처리하기 위한 하둡 분산 파일 시스템

(Hadoop Distributed File System)

13년 10월 21일 월요일

• 대용량 파일을 주로 저장✓ FAT32: 4G, NTFS: 4~64G, EXT3: 2TB ~ 64TB

• 랜덤 접근 보다는 스트리밍 접근 방식을 선호✓ 순차적인 파일 연산

• 고가의 장비보다는 여러대의 저가의 장비에서 실행됨✓ 장비의 고장이 일반적인 상황으로 고려되어야 함

• 한번 쓰여진 파일은 내용이 변경되기 보다는 추가됨✓ 제공되는 파일 연산: create/delete/append/modify(x)

HDFS의 설계의 특징

13년 10월 21일 월요일

HDFS Architecture

13년 10월 21일 월요일

주요 컨포넌트

• Name-node✓ 파일 및 블록에 대한 메타 데이터 관리✓ HDFS에 전체에 대한 동작을 관리

• Data-node✓ 블록 단위의 데이터가 저장되는 곳

• Client✓ HDFS API를 이용해서 작성된 클라이언트

13년 10월 21일 월요일

블록 기반 파일 시스템

• Block✓ 모든 파일은 블록 단위로 저장됨✓ 하나의 파일은 여러개의 블록으로 이루어짐✓ 기본 블록의 사이즈: 64M

• Replication✓ 블록은 장애에 대비하여 여러개의 복제본을 가짐✓ 기본 복제 계수: 3✓ 각각의 파일별로 복제 계수 설정 가능

13년 10월 21일 월요일

Metadata 관리

• 모든 Metadata는 Name-node의 메모리에 저장• Name-node는 3가지 주요 데이터를 저장✓ 파일에 대한 네임스페이스 정보✓ 파일과 블록의 맵핑 정보✓ 각 블록에 대한 데이터 노드 위치 정보

• 파일에 대한 네임스페이스 정보와 파일과 블록의 맵핑 정보는 Name-node에서 영구적으로 관리✓ 파일 시스템에 대한 이미지 및 변경 로그(FSImage, Edit log)

• 각 블록에 대한 위치 정보는 Name-node에서 임시적으로 관리✓ 데이터 노드 시작시 Name-node로 전송, Name-node는 해당 정보를 메모리에 유지

13년 10월 21일 월요일

FSImage & EditLog

Name-node Secondary Name-node

Storage

FSImage

Edit Log

Memory FileSystem

/

/var/etc/user

A B C D E

1. Add File2. Delete File

3. Append File:

저장New

FS Image다운로드

병합

FSImage

Edit Log

+:

전송

• Name-node는 FSImage와 EditLog를 사용해서 파일 시스템 이미지를 구성✓ EditLog가 클수록 파일 시스템 갱신시 시간이 오래 걸림.✓ 이러한 이슈를 해결하기 위하여, 보조 네임노드는 주기적으로 파일 시스템 이미지를 갱신

13년 10월 21일 월요일

Flow - Write OperationWR�VWDUW�ZULWLQJ�GDWD�WR��-XVW�DV�LQ�WKH�UHDG�FDVH��FSDataOutputStream�ZUDSV�D�DFSOutputStream��ZKLFK�KDQGOHV�FRPPXQLFDWLRQ�ZLWK�WKH�GDWDQRGHV�DQG�QDPHQRGH�

$V�WKH�FOLHQW�ZULWHV�GDWD��VWHS�����DFSOutputStream�VSOLWV�LW�LQWR�SDFNHWV��ZKLFK�LW�ZULWHVWR�DQ�LQWHUQDO�TXHXH��FDOOHG�WKH�GDWD�TXHXH��7KH�GDWD�TXHXH�LV�FRQVXPHG�E\�WKH�DataStreamer��ZKRVH� UHVSRQVLELOLW\� LW� LV� WR�DVN� WKH�QDPHQRGH� WR�DOORFDWH�QHZ�EORFNV�E\SLFNLQJ�D�OLVW�RI�VXLWDEOH�GDWDQRGHV�WR�VWRUH�WKH�UHSOLFDV��7KH�OLVW�RI�GDWDQRGHV�IRUPV�DSLSHOLQH¢ZH¦OO�DVVXPH�WKH�UHSOLFDWLRQ�OHYHO�LV�WKUHH��VR�WKHUH�DUH�WKUHH�QRGHV�LQ�WKHSLSHOLQH��7KH�DataStreamer�VWUHDPV�WKH�SDFNHWV�WR�WKH�ILUVW�GDWDQRGH�LQ�WKH�SLSHOLQH�ZKLFK�VWRUHV�WKH�SDFNHW�DQG�IRUZDUGV�LW�WR�WKH�VHFRQG�GDWDQRGH�LQ�WKH�SLSHOLQH��6LPL�ODUO\�� WKH� VHFRQG�GDWDQRGH�VWRUHV� WKH�SDFNHW�DQG� IRUZDUGV� LW� WR� WKH� WKLUG� �DQG� ODVW�GDWDQRGH�LQ�WKH�SLSHOLQH��VWHS����

)LJXUH������$�FOLHQW�ZULWLQJ�GDWD�WR�+')6

DFSOutputStream� DOVR�PDLQWDLQV�DQ� LQWHUQDO�TXHXH�RI�SDFNHWV� WKDW�DUH�ZDLWLQJ� WR�EHDFNQRZOHGJHG�E\�GDWDQRGHV��FDOOHG�WKH�DFN�TXHXH��$�SDFNHW�LV�UHPRYHG�IURP�WKH�DFNTXHXH�RQO\�ZKHQ�LW�KDV�EHHQ�DFNQRZOHGJHG�E\�DOO�WKH�GDWDQRGHV�LQ�WKH�SLSHOLQH��VWHS����

,I�D�GDWDQRGH�IDLOV�ZKLOH�GDWD�LV�EHLQJ�ZULWWHQ�WR�LW��WKHQ�WKH�IROORZLQJ�DFWLRQV�DUH�WDNHQ�ZKLFK�DUH�WUDQVSDUHQW�WR�WKH�FOLHQW�ZULWLQJ�WKH�GDWD��)LUVW�WKH�SLSHOLQH�LV�FORVHG��DQG�DQ\SDFNHWV�LQ�WKH�DFN�TXHXH�DUH�DGGHG�WR�WKH�IURQW�RI�WKH�GDWD�TXHXH�VR�WKDW�GDWDQRGHVWKDW�DUH�GRZQVWUHDP�IURP�WKH�IDLOHG�QRGH�ZLOO�QRW�PLVV�DQ\�SDFNHWV��7KH�FXUUHQW�EORFNRQ�WKH�JRRG�GDWDQRGHV�LV�JLYHQ�D�QHZ�LGHQWLW\��ZKLFK�LV�FRPPXQLFDWHG�WR�WKH�QDPH�QRGH�� VR� WKDW� WKH� SDUWLDO� EORFN� RQ� WKH� IDLOHG� GDWDQRGH�ZLOO� EH� GHOHWHG� LI� WKH� IDLOHG

Data Flow | 73

www.it-ebooks.info

• 클라이언트는 Name-node로 해당 파일 생성을 요청• Name-node는 해당 파일 블록을 저장할 Data-node의 목록을 전달• 클라이언트는 첫번째 Data-node에게 데이터를 전송✓ 데이터 복제는 Data-node간의 파이프 라인을 통해 이루어짐

13년 10월 21일 월요일

Flow - Read Operation

)LJXUH������$�FOLHQW�UHDGLQJ�GDWD�IURP�+')6

7KH�FOLHQW�RSHQV�WKH�ILOH�LW�ZLVKHV�WR�UHDG�E\�FDOOLQJ�open()�RQ�WKH�FileSystem�REMHFW�ZKLFK� IRU� +')6� LV� DQ� LQVWDQFH� RI� DistributedFileSystem� �VWHS� �� LQ� )LJXUH� �����DistributedFileSystem�FDOOV�WKH�QDPHQRGH��XVLQJ�53&��WR�GHWHUPLQH�WKH�ORFDWLRQV�RIWKH�EORFNV�IRU�WKH�ILUVW�IHZ�EORFNV�LQ�WKH�ILOH��VWHS�����)RU�HDFK�EORFN��WKH�QDPHQRGHUHWXUQV�WKH�DGGUHVVHV�RI�WKH�GDWDQRGHV�WKDW�KDYH�D�FRS\�RI�WKDW�EORFN��)XUWKHUPRUH��WKHGDWDQRGHV�DUH�VRUWHG�DFFRUGLQJ�WR�WKHLU�SUR[LPLW\�WR�WKH�FOLHQW��DFFRUGLQJ�WR�WKH�WRS�RORJ\�RI�WKH�FOXVWHU¦V�QHWZRUN��VHH�£1HWZRUN�7RSRORJ\�DQG�+DGRRS¤�RQ�SDJH������,IWKH�FOLHQW�LV�LWVHOI�D�GDWDQRGH��LQ�WKH�FDVH�RI�D�0DS5HGXFH�WDVN��IRU�LQVWDQFH���WKHQ�LWZLOO�UHDG�IURP�WKH�ORFDO�GDWDQRGH��LI�LW�KRVWV�D�FRS\�RI�WKH�EORFN��VHH�DOVR�)LJXUH������

7KH�DistributedFileSystem�UHWXUQV�DQ�FSDataInputStream��DQ�LQSXW�VWUHDP�WKDW�VXS�SRUWV�ILOH�VHHNV��WR�WKH�FOLHQW�IRU�LW�WR�UHDG�GDWD�IURP��FSDataInputStream�LQ�WXUQ�ZUDSVD�DFSInputStream��ZKLFK�PDQDJHV�WKH�GDWDQRGH�DQG�QDPHQRGH�,�2�

7KH�FOLHQW�WKHQ�FDOOV�read()�RQ�WKH�VWUHDP��VWHS�����DFSInputStream��ZKLFK�KDV�VWRUHGWKH�GDWDQRGH�DGGUHVVHV�IRU�WKH�ILUVW�IHZ�EORFNV�LQ�WKH�ILOH��WKHQ�FRQQHFWV�WR�WKH�ILUVW�FORVHVW��GDWDQRGH�IRU�WKH�ILUVW�EORFN�LQ�WKH�ILOH��'DWD�LV�VWUHDPHG�IURP�WKH�GDWDQRGHEDFN�WR�WKH�FOLHQW��ZKLFK�FDOOV�read()�UHSHDWHGO\�RQ�WKH�VWUHDP��VWHS�����:KHQ�WKH�HQGRI�WKH�EORFN�LV�UHDFKHG��DFSInputStream�ZLOO�FORVH�WKH�FRQQHFWLRQ�WR�WKH�GDWDQRGH��WKHQILQG�WKH�EHVW�GDWDQRGH�IRU�WKH�QH[W�EORFN��VWHS�����7KLV�KDSSHQV�WUDQVSDUHQWO\�WR�WKHFOLHQW��ZKLFK�IURP�LWV�SRLQW�RI�YLHZ�LV�MXVW�UHDGLQJ�D�FRQWLQXRXV�VWUHDP�

%ORFNV�DUH�UHDG�LQ�RUGHU�ZLWK�WKH�DFSInputStream�RSHQLQJ�QHZ�FRQQHFWLRQV�WR�GDWDQRGHVDV�WKH�FOLHQW�UHDGV�WKURXJK�WKH�VWUHDP��,W�ZLOO�DOVR�FDOO�WKH�QDPHQRGH�WR�UHWULHYH�WKHGDWDQRGH�ORFDWLRQV�IRU�WKH�QH[W�EDWFK�RI�EORFNV�DV�QHHGHG��:KHQ�WKH�FOLHQW�KDV�ILQLVKHGUHDGLQJ��LW�FDOOV�close()�RQ�WKH�FSDataInputStream��VWHS����

70 | Chapter 3:ಗThe Hadoop Distributed Filesystem

www.it-ebooks.info

• 클라이언트는 Name-node로 해당 파일의 블록 위치를 요청• Name-node는 복제 블록이 저장된 곳을 확인 후, 클라이언트에서 가까운 순서로 정렬해서 반환• 클라이언트는 Data-node에게 블록 데이터를 요청✓ Best case: 클라이언트와 해당 블록이 저장된 Data-node가 같은 장비일 경우

13년 10월 21일 월요일

일반적인 하드웨어로 구성된 클러스터 상에서 많은 양의 데이터를 병렬로 처리하는 어플리케이션을 쉽게 작성할 수 있도록 하는 소프트웨어 프레임워크

13년 10월 21일 월요일

)LJXUH������0DS5HGXFH�GDWD�IORZ�ZLWK�PXOWLSOH�UHGXFH�WDVNV

)LQDOO\��LW¦V�DOVR�SRVVLEOH�WR�KDYH�]HUR�UHGXFH�WDVNV��7KLV�FDQ�EH�DSSURSULDWH�ZKHQ�\RXGRQ¦W�QHHG�WKH�VKXIIOH�VLQFH�WKH�SURFHVVLQJ�FDQ�EH�FDUULHG�RXW�HQWLUHO\�LQ�SDUDOOHO��D�IHZH[DPSOHV�DUH�GLVFXVVHG�LQ�£1/LQH,QSXW)RUPDW¤�RQ�SDJH�������,Q�WKLV�FDVH��WKH�RQO\RII�QRGH�GDWD�WUDQVIHU�LV�ZKHQ�WKH�PDS�WDVNV�ZULWH�WR�+')6��VHH�)LJXUH������

Combiner Functions0DQ\�0DS5HGXFH�MREV�DUH�OLPLWHG�E\�WKH�EDQGZLGWK�DYDLODEOH�RQ�WKH�FOXVWHU��VR�LW�SD\VWR�PLQLPL]H�WKH�GDWD�WUDQVIHUUHG�EHWZHHQ�PDS�DQG�UHGXFH�WDVNV��+DGRRS�DOORZV�WKHXVHU�WR�VSHFLI\�D�FRPELQHU�IXQFWLRQ�WR�EH�UXQ�RQ�WKH�PDS�RXWSXW¢WKH�FRPELQHU�IXQF�WLRQ¦V�RXWSXW�IRUPV�WKH�LQSXW�WR�WKH�UHGXFH�IXQFWLRQ��6LQFH�WKH�FRPELQHU�IXQFWLRQ�LV�DQRSWLPL]DWLRQ��+DGRRS�GRHV�QRW�SURYLGH�D�JXDUDQWHH�RI�KRZ�PDQ\�WLPHV�LW�ZLOO�FDOO�LWIRU�D�SDUWLFXODU�PDS�RXWSXW�UHFRUG��LI�DW�DOO��,Q�RWKHU�ZRUGV��FDOOLQJ�WKH�FRPELQHU�IXQF�WLRQ�]HUR��RQH��RU�PDQ\�WLPHV�VKRXOG�SURGXFH�WKH�VDPH�RXWSXW�IURP�WKH�UHGXFHU�

34 | Chapter 2:ಗMapReduce

www.it-ebooks.info

Map-Reduce Overview

Map-Reduce는 입력 데이터를 Split으로 분할하여 각각의 노드에서 병렬적으로 처리

13년 10월 21일 월요일

: 직접 소스 개발 : 프레임워크에서 동작

Map & Reduce

Map: (k1, v1) -> list(k2, v2)Reduce: (k2, list(v2)) -> list(k3, v3)

ex) 단어 수 세기

Map-Reduce는 Map과 Reduce라는 2개의 메서드로 구성

read a bookwrite a book

<1, read a book><2, write a book>

Map

<read, 1><a, 1>

<book, 1><write, 1>

<a, 1><book, 1>

<read, (1)><a, (1,1)>

<book, (1,1)><write, (1)>

Reduce

<read, 1>< a, 2>

<book, 2><write, 1>

Map

정렬과병합

Reduce

키,값

13년 10월 21일 월요일

public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable>{ private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(Object key, Text value, Context context ) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } } }

ExampleWordCount-Mapper

Map: (k1, v1) -> list(k2, v2)

13년 10월 21일 월요일

ExampleWordCount-Reducer

public static class IntSumReducer extends Reducer<Text,IntWritable,Text,IntWritable> { private IntWritable result = new IntWritable();

public void reduce(Text key, Iterable<IntWritable> values, Context context ) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } result.set(sum); context.write(key, result); } }

Reduce: (k2, list(v2)) -> list(k3, v3)

13년 10월 21일 월요일

ExampleWordCount-Driver

public class WordCount { public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); String[] otherArgs = new GenericOptionsParser(conf, args)

.getRemainingArgs(); if (otherArgs.length != 2) { System.err.println("Usage: wordcount <in> <out>"); System.exit(2); } Job job = new Job(conf, "word count"); job.setJarByClass(WordCount.class); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(otherArgs[0])); FileOutputFormat.setOutputPath(job, new Path(otherArgs[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); }}

main함수가 있는 구동 Class

13년 10월 21일 월요일

Map-Reduce Architecture

13년 10월 21일 월요일

7KH�MRE�VXEPLVVLRQ�SURFHVV�LPSOHPHQWHG�E\�JobClient¦V�submitJob()�PHWKRG�GRHV�WKHIROORZLQJ�

� $VNV�WKH�MREWUDFNHU�IRU�D�QHZ�MRE�,'��E\�FDOOLQJ�getNewJobId()�RQ�JobTracker���VWHS���

� &KHFNV�WKH�RXWSXW�VSHFLILFDWLRQ�RI�WKH�MRE��)RU�H[DPSOH��LI�WKH�RXWSXW�GLUHFWRU\�KDVQRW�EHHQ�VSHFLILHG�RU� LW�DOUHDG\�H[LVWV�� WKH� MRE� LV�QRW� VXEPLWWHG�DQG�DQ�HUURU� LVWKURZQ�WR�WKH�0DS5HGXFH�SURJUDP�

� &RPSXWHV�WKH�LQSXW�VSOLWV�IRU�WKH�MRE��,I�WKH�VSOLWV�FDQQRW�EH�FRPSXWHG��EHFDXVHWKH�LQSXW�SDWKV�GRQ¦W�H[LVW��IRU�H[DPSOH��WKHQ�WKH�MRE�LV�QRW�VXEPLWWHG�DQG�DQ�HUURULV�WKURZQ�WR�WKH�0DS5HGXFH�SURJUDP�

� &RSLHV�WKH�UHVRXUFHV�QHHGHG�WR�UXQ�WKH�MRE��LQFOXGLQJ�WKH�MRE�-$5�ILOH��WKH�FRQILJ�XUDWLRQ� ILOH�� DQG� WKH� FRPSXWHG� LQSXW� VSOLWV�� WR� WKH� MREWUDFNHU¦V� ILOHV\VWHP� LQ� DGLUHFWRU\�QDPHG�DIWHU�WKH�MRE�,'��7KH�MRE�-$5�LV�FRSLHG�ZLWK�D�KLJK�UHSOLFDWLRQIDFWRU��FRQWUROOHG�E\�WKH�mapred.submit.replication�SURSHUW\��ZKLFK�GHIDXOWV�WR����VR�WKDW�WKHUH�DUH�ORWV�RI�FRSLHV�DFURVV�WKH�FOXVWHU�IRU�WKH�WDVNWUDFNHUV�WR�DFFHVVZKHQ�WKH\�UXQ�WDVNV�IRU�WKH�MRE��VWHS����

)LJXUH������+RZ�+DGRRS�UXQV�D�0DS5HGXFH�MRE

168 | Chapter 6:ಗHow MapReduce Works

Map-Reduce-I

• JobClient✓ 공통 파일을 분산 파일 시스템에 복사✓ JobTracker에 Map-Reduce 잡을 제출

• JobTracker✓ 제출된 맵 리듀스 잡을 스케쥴링✓ 태스크 트래커에 태스크(Map/Reduce)를 할당

• TaskTracker✓ 할당된 태스크를 수행✓ 수행되는 태스크는 별도의 JVM에서 실행됨✓ 일반적으로 HDFS의 Data-node와 같은 곳에서 실행됨. - 데이터 지역성 극대화

13년 10월 21일 월요일

duce.framework.name�LV�VHW�WR�yarn��7KH�VXEPLVVLRQ�SURFHVV�LV�YHU\�VLPLODU�WR�WKH�FODVVLFLPSOHPHQWDWLRQ��7KH�QHZ�MRE�,'�LV�UHWULHYHG�IURP�WKH�UHVRXUFH�PDQDJHU��UDWKHU�WKDQWKH�MREWUDFNHU���DOWKRXJK�LQ�WKH�QRPHQFODWXUH�RI�<$51�LW�LV�DQ�DSSOLFDWLRQ�,'��VWHS����7KH�MRE�FOLHQW�FKHFNV�WKH�RXWSXW�VSHFLILFDWLRQ�RI�WKH�MRE��FRPSXWHV�LQSXW�VSOLWV��DO�WKRXJK�WKHUH�LV�DQ�RSWLRQ�WR�JHQHUDWH�WKHP�RQ�WKH�FOXVWHU��yarn.app.mapreduce.am.compute-splits-in-cluster��ZKLFK�FDQ�EH�EHQHILFLDO�IRU�MREV�ZLWK�PDQ\�VSOLWV���DQG�FRSLHVMRE�UHVRXUFHV��LQFOXGLQJ�WKH�MRE�-$5��FRQILJXUDWLRQ��DQG�VSOLW�LQIRUPDWLRQ��WR�+')6�VWHS�����)LQDOO\��WKH�MRE�LV�VXEPLWWHG�E\�FDOOLQJ�submitApplication()�RQ�WKH�UHVRXUFHPDQDJHU��VWHS����

Job Initialization:KHQ�WKH�UHVRXUFH�PDQDJHU�UHFHLYHV�D�FDOO�WR�LWV�submitApplication()��LW�KDQGV�RII�WKHUHTXHVW�WR�WKH�VFKHGXOHU��7KH�VFKHGXOHU�DOORFDWHV�D�FRQWDLQHU��DQG�WKH�UHVRXUFH�PDQDJHUWKHQ�ODXQFKHV�WKH�DSSOLFDWLRQ�PDVWHU¦V�SURFHVV�WKHUH��XQGHU�WKH�QRGH�PDQDJHU¦V�PDQ�DJHPHQW��VWHSV��D�DQG��E��

7KH�DSSOLFDWLRQ�PDVWHU�IRU�0DS5HGXFH�MREV�LV�D�-DYD�DSSOLFDWLRQ�ZKRVH�PDLQ�FODVV�LVMRAppMaster��,W�LQLWLDOL]HV�WKH�MRE�E\�FUHDWLQJ�D�QXPEHU�RI�ERRNNHHSLQJ�REMHFWV�WR�NHHSWUDFN�RI�WKH�MRE¦V�SURJUHVV��DV�LW�ZLOO�UHFHLYH�SURJUHVV�DQG�FRPSOHWLRQ�UHSRUWV�IURP�WKHWDVNV��VWHS�����1H[W��LW�UHWULHYHV�WKH�LQSXW�VSOLWV�FRPSXWHG�LQ�WKH�FOLHQW�IURP�WKH�VKDUHGILOHV\VWHP��VWHS�����,W�WKHQ�FUHDWHV�D�PDS�WDVN�REMHFW�IRU�HDFK�VSOLW��DQG�D�QXPEHU�RIUHGXFH�WDVN�REMHFWV�GHWHUPLQHG�E\�WKH�mapreduce.job.reduces�SURSHUW\�

7KH�QH[W�WKLQJ�WKH�DSSOLFDWLRQ�PDVWHU�GRHV�LV�GHFLGH�KRZ�WR�UXQ�WKH�WDVNV�WKDW�PDNHXS�WKH�0DS5HGXFH�MRE��,I�WKH�MRE�LV�VPDOO��WKH�DSSOLFDWLRQ�PDVWHU�PD\�FKRRVH�WR�UXQWKHP�LQ�WKH�VDPH�-90�DV�LWVHOI��VLQFH�LW�MXGJHV�WKH�RYHUKHDG�RI�DOORFDWLQJ�QHZ�FRQWDLQHUVDQG�UXQQLQJ�WDVNV�LQ�WKHP�DV�RXWZHLJKLQJ�WKH�JDLQ�WR�EH�KDG�LQ�UXQQLQJ�WKHP�LQ�SDUDOOHO�FRPSDUHG�WR�UXQQLQJ�WKHP�VHTXHQWLDOO\�RQ�RQH�QRGH���7KLV�LV�GLIIHUHQW�WR�0DS5HGXFH���ZKHUH�VPDOO� MREV�DUH�QHYHU� UXQ�RQ�D� VLQJOH� WDVNWUDFNHU���6XFK�D� MRE� LV� VDLG� WR�EHXEHUL]HG��RU�UXQ�DV�DQ�XEHU�WDVN�

:KDW�TXDOLILHV�DV�D�VPDOO�MRE"�%\�GHIDXOW�RQH�WKDW�KDV�OHVV�WKDQ����PDSSHUV��RQO\�RQHUHGXFHU��DQG�WKH�LQSXW�VL]H�LV�OHVV�WKDQ�WKH�VL]H�RI�RQH�+')6�EORFN���7KHVH�YDOXHV�PD\

)LJXUH������+RZ�+DGRRS�UXQV�D�0DS5HGXFH�MRE�XVLQJ�<$51

Anatomy of a MapReduce Job Run | 197

www.it-ebooks.info

Map-Reduce-II(YARN)

• Job✓ 공통 파일을 분산 파일 시스템에 복사✓ JobTracker에 Map-Reduce 잡을 제출

• Resource Manager✓ 클러스터 상의 컴퓨터 리소스를 할당

• Application Master✓ 맵 리듀스 잡을 수행✓ Node Manager에게 태스크 수행을 요청

• Node Manager✓ 컨테이너의 리소스를 관리✓ 리소스 허용 범위 내의 태스크를 실행

13년 10월 21일 월요일

duce.framework.name�LV�VHW�WR�yarn��7KH�VXEPLVVLRQ�SURFHVV�LV�YHU\�VLPLODU�WR�WKH�FODVVLFLPSOHPHQWDWLRQ��7KH�QHZ�MRE�,'�LV�UHWULHYHG�IURP�WKH�UHVRXUFH�PDQDJHU��UDWKHU�WKDQWKH�MREWUDFNHU���DOWKRXJK�LQ�WKH�QRPHQFODWXUH�RI�<$51�LW�LV�DQ�DSSOLFDWLRQ�,'��VWHS����7KH�MRE�FOLHQW�FKHFNV�WKH�RXWSXW�VSHFLILFDWLRQ�RI�WKH�MRE��FRPSXWHV�LQSXW�VSOLWV��DO�WKRXJK�WKHUH�LV�DQ�RSWLRQ�WR�JHQHUDWH�WKHP�RQ�WKH�FOXVWHU��yarn.app.mapreduce.am.compute-splits-in-cluster��ZKLFK�FDQ�EH�EHQHILFLDO�IRU�MREV�ZLWK�PDQ\�VSOLWV���DQG�FRSLHVMRE�UHVRXUFHV��LQFOXGLQJ�WKH�MRE�-$5��FRQILJXUDWLRQ��DQG�VSOLW�LQIRUPDWLRQ��WR�+')6�VWHS�����)LQDOO\��WKH�MRE�LV�VXEPLWWHG�E\�FDOOLQJ�submitApplication()�RQ�WKH�UHVRXUFHPDQDJHU��VWHS����

Job Initialization:KHQ�WKH�UHVRXUFH�PDQDJHU�UHFHLYHV�D�FDOO�WR�LWV�submitApplication()��LW�KDQGV�RII�WKHUHTXHVW�WR�WKH�VFKHGXOHU��7KH�VFKHGXOHU�DOORFDWHV�D�FRQWDLQHU��DQG�WKH�UHVRXUFH�PDQDJHUWKHQ�ODXQFKHV�WKH�DSSOLFDWLRQ�PDVWHU¦V�SURFHVV�WKHUH��XQGHU�WKH�QRGH�PDQDJHU¦V�PDQ�DJHPHQW��VWHSV��D�DQG��E��

7KH�DSSOLFDWLRQ�PDVWHU�IRU�0DS5HGXFH�MREV�LV�D�-DYD�DSSOLFDWLRQ�ZKRVH�PDLQ�FODVV�LVMRAppMaster��,W�LQLWLDOL]HV�WKH�MRE�E\�FUHDWLQJ�D�QXPEHU�RI�ERRNNHHSLQJ�REMHFWV�WR�NHHSWUDFN�RI�WKH�MRE¦V�SURJUHVV��DV�LW�ZLOO�UHFHLYH�SURJUHVV�DQG�FRPSOHWLRQ�UHSRUWV�IURP�WKHWDVNV��VWHS�����1H[W��LW�UHWULHYHV�WKH�LQSXW�VSOLWV�FRPSXWHG�LQ�WKH�FOLHQW�IURP�WKH�VKDUHGILOHV\VWHP��VWHS�����,W�WKHQ�FUHDWHV�D�PDS�WDVN�REMHFW�IRU�HDFK�VSOLW��DQG�D�QXPEHU�RIUHGXFH�WDVN�REMHFWV�GHWHUPLQHG�E\�WKH�mapreduce.job.reduces�SURSHUW\�

7KH�QH[W�WKLQJ�WKH�DSSOLFDWLRQ�PDVWHU�GRHV�LV�GHFLGH�KRZ�WR�UXQ�WKH�WDVNV�WKDW�PDNHXS�WKH�0DS5HGXFH�MRE��,I�WKH�MRE�LV�VPDOO��WKH�DSSOLFDWLRQ�PDVWHU�PD\�FKRRVH�WR�UXQWKHP�LQ�WKH�VDPH�-90�DV�LWVHOI��VLQFH�LW�MXGJHV�WKH�RYHUKHDG�RI�DOORFDWLQJ�QHZ�FRQWDLQHUVDQG�UXQQLQJ�WDVNV�LQ�WKHP�DV�RXWZHLJKLQJ�WKH�JDLQ�WR�EH�KDG�LQ�UXQQLQJ�WKHP�LQ�SDUDOOHO�FRPSDUHG�WR�UXQQLQJ�WKHP�VHTXHQWLDOO\�RQ�RQH�QRGH���7KLV�LV�GLIIHUHQW�WR�0DS5HGXFH���ZKHUH�VPDOO� MREV�DUH�QHYHU� UXQ�RQ�D� VLQJOH� WDVNWUDFNHU���6XFK�D� MRE� LV� VDLG� WR�EHXEHUL]HG��RU�UXQ�DV�DQ�XEHU�WDVN�

:KDW�TXDOLILHV�DV�D�VPDOO�MRE"�%\�GHIDXOW�RQH�WKDW�KDV�OHVV�WKDQ����PDSSHUV��RQO\�RQHUHGXFHU��DQG�WKH�LQSXW�VL]H�LV�OHVV�WKDQ�WKH�VL]H�RI�RQH�+')6�EORFN���7KHVH�YDOXHV�PD\

)LJXUH������+RZ�+DGRRS�UXQV�D�0DS5HGXFH�MRE�XVLQJ�<$51

Anatomy of a MapReduce Job Run | 197

www.it-ebooks.info

Map-Reduce-II(YARN)

• Job✓ 공통 파일을 분산 파일 시스템에 복사✓ JobTracker에 Map-Reduce 잡을 제출

• Resource Manager✓ 클러스터 상의 컴퓨터 리소스를 할당

• Application Master✓ 맵 리듀스 잡을 수행✓ Node Manager에게 태스크 수행을 요청

• Node Manager✓ 컨테이너의 리소스를 관리✓ 리소스 허용 범위 내의 태스크를 실행확장성 문제를 해결하기 위해

잡트래커의 책임을 분리13년 10월 21일 월요일

이전 버전과의 차이 (2/2)

출처: Hortonworks, http://hortonworks.com/hadoop/yarn

Map-Reduce I vs YARN

13년 10월 21일 월요일

Hadoop Echo System

13년 10월 21일 월요일

Apache HBase하둡 기반의 NoSQL 시스템(컬럼기반), Google Big Table 과 유사 - MasterServer와 RegionServer로 구성됨.- HA를 위해 Apache Zookeer 사용

13년 10월 21일 월요일

Apache PIG

• 대규모의 데이터를 쉽게 분석할 수 있도록 스크립트 수준의 언어를 제공하는 분석 플랫폼

✓ Hadoop 상에서 구동시 스크립트가 내부적으로 맵리듀스 잡으로 수행 됨

<WordCount Example>

A = load './input.txt'; B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word; C = group B by word; D = foreach C generate COUNT(B), group; store D into './wordcount';

13년 10월 21일 월요일

Apache Hive

The Hive Web Interface (HWI)$V�DQ�DOWHUQDWLYH�WR�WKH�VKHOO��\RX�PLJKW�ZDQW�WR�WU\�+LYH¦V�VLPSOH�ZHE�LQWHUIDFH��6WDUWLW�XVLQJ�WKH�IROORZLQJ�FRPPDQGV�

% export ANT_LIB=/path/to/ant/lib% hive --service hwi

�<RX�RQO\�QHHG�WR�VHW�WKH�ANT_LIB�HQYLURQPHQW�YDULDEOH�LI�$QW¦V�OLEUDU\�LV�QRW�IRXQGLQ� �RSW�DQW�OLE� RQ� \RXU� V\VWHP��� 7KHQ� QDYLJDWH� WR� KWWS���ORFDOKRVW������KZL� LQ� \RXUEURZVHU��)URP�WKHUH��\RX�FDQ�EURZVH�+LYH�GDWDEDVH�VFKHPDV�DQG�FUHDWH�VHVVLRQV�IRULVVXLQJ�FRPPDQGV�DQG�TXHULHV�

,W¦V�SRVVLEOH�WR�UXQ�WKH�ZHE�LQWHUIDFH�DV�D�VKDUHG�VHUYLFH�WR�JLYH�XVHUV�ZLWKLQ�DQ�RUJD�QL]DWLRQ�DFFHVV�WR�+LYH�ZLWKRXW�KDYLQJ�WR�LQVWDOO�DQ\�FOLHQW�VRIWZDUH��7KHUH�DUH�PRUHGHWDLOV�RQ�WKH�+LYH�:HE�,QWHUIDFH�RQ�WKH�+LYH�ZLNL�DW�KWWSV���FZLNL�DSDFKH�RUJ�FRQIOXHQFH�GLVSOD\�+LYH�+LYH:HE,QWHUIDFH�

Hive clients,I�\RX�UXQ�+LYH�DV�D�VHUYHU��hive --service hiveserver���WKHQ�WKHUH�DUH�D�QXPEHU�RIGLIIHUHQW�PHFKDQLVPV�IRU�FRQQHFWLQJ�WR�LW�IURP�DSSOLFDWLRQV��7KH�UHODWLRQVKLS�EHWZHHQ+LYH�FOLHQWV�DQG�+LYH�VHUYLFHV�LV�LOOXVWUDWHG�LQ�)LJXUH������

)LJXUH�������+LYH�DUFKLWHFWXUH

418 | Chapter 12:ಗHive

www.it-ebooks.info

하둡에 저장된 데이터를 쉽게 처리할 수 있도록 하는 데이터 웨어하우스 솔루션 - SQL 호환의 스크립트 구조를 제공 - 메타 정보를 저장하기 위해 별도의 메타 스토어가 필요

13년 10월 21일 월요일

이미지 출처: siliconweek, <http://www.siliconweek.es/noticias/apache-sqoop-se-convierte-en-proyecto-prioritario-para-big-data-21558>

하둡과 RDBMS 사이에서 데이터를 전송하기 위한 Tool

Import Export

Apache Sqoop

13년 10월 21일 월요일

Apache Flume

출처: cloudera, http://archive.cloudera.com/cdh/3/flume-0.9.0+1/UserGuide.html

• 분석을 위해 많은 양의 로그 데이터를 효과적으로 수집하여 HDFS에 저장하는 시스템• 노드✓ Logical: 데이터의 흐름을 담당✓ Physical: 단일 자바 프로세스, 즉 단일 JVM 인스턴스

Logical 노드를 담는 컨테이너

• 컨포넌트✓ Master: Logical, Physical 노드를 제어✓ Agent: 로그를 수집하여 Collector에 전송하는 역할✓ Collector: 로그를 수집하여 더 큰 스트림으로 묶어 HDFS에 저장

13년 10월 21일 월요일

Apache Zookeeper분산 환경에서 필요한 여러가지 기능을 구현할수 있도록 하는 분산 코디네이터 - Google Chubby의 구현제 - 세션 기반의 파일 시스템과 유사한 데이터 저장 구조를 제공 - 분산 락, 캐시, 맴버쉽 관리에 용이 - HA를 위해 과반수 알고리즘을 사용

13년 10월 21일 월요일

References

• 정재화. 시작하세요! 하둡 프로그래밍. 경기도 파주: 위키북스, 2012

• 위키피디아. 빅데이터. http://ko.wikipedia.org/wiki/%EB%B9%85_%EB%8D%B0%EC%9D%B4%ED%84%B0 .

• Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. The Google le system. In 19th Symposium on Operating Systems Principles, pages 2943, Lake George, New York, 2003.

• 아파치. 하둡. http://hadoop.apache.org/

• Hadoop YARN “A next-generation framework for Hadoop data processing”, Hortonworks, http://hortonworks.com/hadoop/yarn

• Flume User Guide, Cloudera, http://archive.cloudera.com/cdh/3/flume-0.9.0+1/UserGuide.html

13년 10월 21일 월요일

top related