<31352D352D312D36C0CCBFF8C1D6B1DDC5C2C8C6C0FCC3A2C8A35FBCF6C1A4BABB2E687770>

Similar documents
<30322E F6F7020BCB3C4A1BFCD20BED6C7C3B8AEC4C9C0CCBCC7C0C720B1B8B5BF28B1DDC5C2C8C62C20B1E8BCBCC8B82C20C0CCBBF3C1D8292E687770>

6.24-9년 6월

슬라이드 1

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

05( ) CPLV12-04.hwp

°í¼®ÁÖ Ãâ·Â

이용석 박환용 - 베이비부머의 특성에 따른 주택유형 선택 변화 연구.hwp

PowerPoint 프레젠테이션

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

2017 년 6 월한국소프트웨어감정평가학회논문지제 13 권제 1 호 Abstract

09권오설_ok.hwp

항목

DBPIA-NURIMEDIA

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

À±½Â¿í Ãâ·Â

DBPIA-NURIMEDIA

PowerPoint 프레젠테이션

DBPIA-NURIMEDIA

[Brochure] KOR_TunA


High Resolution Disparity Map Generation Using TOF Depth Camera In this paper, we propose a high-resolution disparity map generation method using a lo

디지털포렌식학회 논문양식

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

韓國電磁波學會論文誌第 21 卷第 12 號 2010 年 12 月論文 On Reducing the Shadow Region for Extending the Service Area of TBN-Jeonju Broadcasting 김태훈 이문호 이미성

김기남_ATDC2016_160620_[키노트].key

Microsoft PowerPoint - chap01-C언어개요.pptx

BMP 파일 처리

DBPIA-NURIMEDIA

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 26(11),

<5B D B3E220C1A634B1C720C1A632C8A320B3EDB9AEC1F628C3D6C1BE292E687770>

윈도우즈프로그래밍(1)

Microsoft PowerPoint 자동설치시스템검증-V05-Baul.pptx

04-다시_고속철도61~80p

chap 5: Trees

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

PCServerMgmt7

Windows Server 2012

Microsoft PowerPoint - e pptx

슬라이드 1

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

(JBE Vol. 21, No. 1, January 2016) (Regular Paper) 21 1, (JBE Vol. 21, No. 1, January 2016) ISSN 228

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤

게시판 스팸 실시간 차단 시스템

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Dec.; 27(12),

adfasdfasfdasfasfadf

APOGEE Insight_KR_Base_3P11

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

슬라이드 1

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx


The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint 프레젠테이션

PowerPoint Template

C# Programming Guide - Types

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

클라우드컴퓨팅확산에따른국내경제시사점 클라우드컴퓨팅확산에따른국내경제시사점 * 1) IT,,,, Salesforce.com SaaS (, ), PaaS ( ), IaaS (, IT ), IT, SW ICT, ICT IT ICT,, ICT, *, (TEL)

untitled

PowerPoint 프레젠테이션

À¯Çõ Ãâ·Â

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

DBPIA-NURIMEDIA

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Feb.; 29(2), IS

Microsoft PowerPoint - chap06-2pointer.ppt

PowerPoint Presentation

2 노드

Samsung SDS Enterprise Cloud Networking CDN Load Balancer WAN

1217 WebTrafMon II

PowerPoint Presentation

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

<333820B1E8C8AFBFEB2D5A B8A620C0CCBFEBC7D120BDC7BFDC20C0A7C4A1C3DFC1A42E687770>

Microsoft Word - src.doc

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

The Pocket Guide to TCP/IP Sockets: C Version

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

<30392DB5A5C0CCC5CDBAA3C0CCBDBA20B9D720C0CEC5CDB3DDC0C0BFEB2DC1A4C8B8B0E62E687770>

Microsoft Word - KSR2012A021.doc

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 26(11),

ISP and CodeVisionAVR C Compiler.hwp

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

DBPIA-NURIMEDIA

슬라이드 1

PowerPoint Presentation

Tablespace On-Offline 테이블스페이스 온라인/오프라인

빅데이터_DAY key

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

중간고사

[ 정보 ] 과학고 R&E 결과보고서 Monte Carlo Method 를이용한 고교배정시뮬레이션 연구기간 : ~ 연구책임자 : 강대욱 ( 전남대전자컴퓨터공학부 ) 지도교사 : 최미경 ( 전남과학고정보 컴퓨터과 ) 참여학생 : 박진명 ( 전

Windows 8에서 BioStar 1 설치하기

Visual Basic 반복문

<30312DC2F7BCBCB4EBC4C4C7BBC6C32DBED5BACEBAD B1C731C8A3292E687770>

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint 웹 연동 기술.pptx

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint 프레젠테이션

Transcription:

韓國컴퓨터情報學會論文誌第 15 卷第 5 號, 2010. 5. 2010-15-5-1-6 클라우드컴퓨팅에서 Hadoop 애플리케이션특성에따른성능분석 1) 금태훈 *, 이원주 **, 전창호 *** A Performance Analysis Based on Hadoop Application's Characteristics in Cloud Computing Tae Hoon Keum *, Won Joo Lee **, Chang Ho Jeon *** 요약 본논문에서는클라우드컴퓨팅을위해 Hadoop 기반의클러스터를구축하고, RandomTextWriter, WordCount, PI 애플리케이션을수행함으로써애플리케이션특성에따른클러스터의성능을평가한다. RandomTextWriter 는주어진용량만큼임의의단어를생성하여 HDFS 에저장하는애플리케이션이고, WordCount 는입력파일을읽어서블록단위로단어빈도수를계산하는애플리케이션이다. 그리고 PI 는몬테카를로법을사용하여 PI 값을유도하는애플리케이션이다. 이러한애플리케이션을실행시키면서데이터블록크기와데이터복제본수증가에따른애플리케이션의수행시간을측정한다. 시뮬레이션을통하여 RandomTextWriter 애플리케이션은데이터복제본수증가에비례하여수행시간이증가함을알수있었다. 반면에 WordCount 와 PI 애플리케이션은데이터복제본수에큰영향을받지않았다. 또한 WordCount 애플리케이션은블록크기가 64~256MB 일때최적의수행시간을얻을수있었다. 따라서이러한애플리케이션의특성을고려한스케줄링정책을개발한다면애플리케이션의실행시간을단축하여클라우드컴퓨팅시스템의성능을향상시킬수있음을보인다. Abstract In this paper, we implement a Hadoop based cluster for cloud computing and evaluate the performance of this cluster based on application characteristics by executing RandomTextWriter, WordCount, and PI applications. A RandomTextWriter creates given amount of random words and stores them in the HDFS(Hadoop Distributed File System). A WordCount reads an input file and determines the frequency of a given word per block unit. PI application induces PI value using the Monte Carlo law. During simulation, we investigate the effect of data block size and the number of replications on the execution time of applications. Through simulation, we have confirmed that the execution time of RandomTextWriter was proportional to the number of replications. However, the execution time of WordCount and PI were not affected by the number of replications. Moreover, the 제1저자 : 금태훈교신저자 : 이원주 투고일 : 2010. 03. 29, 심사일 : 2010. 04. 19, 게재확정일 : 2010. 04. 29. * 한양대컴퓨터공학과 ** 인하공업전문대학컴퓨터정보과부교수 *** 한양대전자컴퓨터공학부교수 이논문은 2009년한국컴퓨터정보학회제40차하계학술대회에서발표한논문 ( 클라우드컴퓨팅을위한 Hadoop 애플리케이션특성분석 ) 을확장한것임

50 韓國컴퓨터情報學會論文誌 (2010. 5.) execution time of WordCount was optimum when the block size was 64~256MB. Therefore, these results show that the performance of cloud computing system can be enhanced by using a scheduling scheme that considers application's characteristics. Keyword : 클라우드컴퓨팅 (Cloud Computing), HDFS(Hadoop Distributed File System). 클러스터 (Cluster), Hadoop, Ⅰ. 서론 클라우드컴퓨팅이란개인용컴퓨터또는기업의서버에개별적으로저장해두었던자료와소프트웨어들을클라우드클러스터로구축하여필요할때 PC 나휴대폰과같은각종단말기를이용하여원격작업을수행할수있는환경을의미한다. 이러한클라우드컴퓨팅의개념은그림 1과같다. 가출범하는등관련산업체중심으로클라우드컴퓨팅에대한연구를진행하고있다. 클라우드컴퓨팅기술은가상화기술, 웹서비스, SOA(Service Oriented Architecture), 웹 2.0, 분산파일시스템과프로그래밍모델등이있다 [5]. 본논문에서는분산파일시스템과프로그래밍모델을이용하여클라우드컴퓨팅을위한클러스터를구축하고, 프로그래밍모델을이용한애플리케이션의특성을분석한다. 본논문의구성은다음과같다. 2장에서는분산파일시스템과클라우드프로그래밍모델에대하여설명한다. 3장에서는 Apache 오픈소스프로젝트인 Hadoop 을이용한클러스터구축방법에대해서설명한다. 4장에서는 Hadoop 의애플리케이션의사코드와성능평가를통해애플리케이션의특성을분석한다. 그리고 5장에서결론을맺는다. II. 관련연구 그림 1. 클라우드컴퓨팅개요 Fig. 1. Cloud computing overview 그림 1에서클라우드클러스터는서비스제공자로서사용자들에게서비스카탈로그를제공한다. 사용자들은네트워크접속이가능한단말기만있으면시간과장소제한없이이러한서비스들을저렴한비용으로사용할수있다. 사용자는클라우드클러스터내부에서해당작업에필요한컴퓨팅자원을할당하는클라우드구조또는동작에대하여전혀알필요없이단순히작업요청만하면된다. 이러한특징을가지는클라우드컴퓨팅은 2006 년구글 (Google) 의엔지니어가처음으로제안하였으며 [1] 유연한동적 IT 인프라와 QoS 가보장되는컴퓨팅환경, 그리고구성가능한소프트웨어서비스를제공하기때문에많은관심을받고있다. 국외에서는이미많은연구와개발이진행중이며, 대표적인예로 Amazon Elastic Compute Cloud[2], IBM Blue Cloud[3] 그리고 Google App Engine[4] 등이있다. 우리나라에서도 2008년에한국클라우드컴퓨팅협의회 (CCKI) 클라우드컴퓨팅을위한대표적인분산파일시스템과프로그래밍모델은구글의 GFS(Google File System) 과 MapReduce 기술이있다 [6][7]. 이를바탕으로 Apache 에서는오픈소스기반의 Hadoop 프로젝트를진행중이며 HDFS(Hadoop Distributed File System) 과MapReduce 기술을결합한 Hadoop-Core 를배포하고있다 [8][9][10]. 2.1 HDFS(Hadoop Distributed File System) HDFS 는저비용의수백내지수천노드를가지는클러스터를이용하여기가바이트또는테라바이트의대용량데이터집합을처리하는응용프로그램에적합하도록설계한분산파일시스템이다. HDFS 는마스터-슬레이브구조로동작하며, 노드간에 TCP/IP 프로토콜을사용하여통신한다. 또한노드실패에대비하여데이터를복제하여저장한다. 이 HDFS 의구조는그림 2와같다. 그림 2에서단일네임노드 (Name Node) 는파일시스템네임스페이스를관리하고, 클라이언트에의한파일접근을통제한다. 데이터노드 (Data Node) 는클러스터에서각노드의스토리지를관리하며네임노드가지시하는블록명령등을

클라우드컴퓨팅에서 Hadoop 애플리케이션특성에따른성능분석 51 수행한다. 그림 2. HDFS 구조 Fig. 2. HDFS Architecture 1 마스터노드는입력파일들을특정크기로분할하고, 그분할된 M개의조각을클러스터의작업노드들에게할당한다. 2 각작업노드들은할당받은 Map 작업에필요한조각들을로드하여, Map 함수를수행하고중간결과값을저장한다. 3 Reduce 작업을할당받은작업노드들은중간결과값을로드하여 Reduce 함수를수행하고, 최종결과값을저장한다. 4 모든 Map과 Reduce 작업이완료되면마스터노드는그결과를사용자프로그램에전송한다. 클라이언트의대용량파일원본을 HDFS 에저장할때블록단위로나누어서저장한다. 기본적인블록크기는 64MB 또는 128MB이며사용자가임의로설정가능하다. 각파일의블록들은데이터노드실패시에자동복구를위해복제본을생성한다. 이때복제설정값은기본적으로 3 이지만사용자가임의로설정가능하다. 이러한복제블록을어떻게배치하느냐에따라 HDFS 의신뢰성과성능에중요한영향을미치는데현재 HDFS 는 Rack-aware 복제배치정책을사용하고있다. 이것은다른랙 (rack) 에위치한두노드사이의통신은스위치를통하기때문에대역폭이작은반면동일한랙에위치한두노드간의대역폭은훨씬크다는점을고려한것이다. 예를들면복제설정값이 3일경우, 동일랙에존재하는두노드에각각복제본을저장하고, 다른랙의노드에동일한복제본을저장한다. 따라서노드실패가발생하면동일한복제본 2개를이용하여데이터를복구함으로써데이터손실을방지할수있다. 또한, HDFS 의통신은 TCP/IP 프로토콜을사용하며, 네임노드와데이터노드간의 TCP 포트는클러스터구축시설정한다. TCP 포트설정은 3.2 절에서자세히설명한다. 2.2 MapReduce MapReduce 는대용량데이터집합을처리하는기법이다. 또한 MapReduce 는일정한데이터포맷을생성하여분산처리하는기능을제공한다. 이때개발자는 Map 함수와 Reduce 함수를정의한다. Map 함수는입력된 <key, value> 쌍들을처리하여 <key, value> 쌍의중간값집합을생성한다. Reduce 함수는중간 key 값을가지는모든중간값들을통합하여최종출력값으로저장한다. MapReduce 의동작과정은다음과같다. 마스터노드는주기적으로모든작업노드들이동작하는지체크한다. 만일특정시간동안작업노드의응답이없으면마스터노드는해당작업노드를실패로처리한다. 이때더이상작업실패노드접근이불가능하기때문에로컬디스크에서작업중이던결과물에접근할수없다. 따라서수행중이던작업을모두초기상태로되돌리고, 다른작업노드에할당하여재시작한다. III. Hadoop 기반의클러스터구축 Hadoop 기반의클러스터구축방식에는단일구성방식, 가상분산방식, 완전분산방식이있다. 먼저단일구성방식은비분산모드로 Hadoop 을하나의로컬시스템에서자바프로세스로실행하는방식으로주로 Hadoop 기반의응용프로그램디버깅에유용하다. 가상분산방식은하나의노드에서네임노드와데이터노드각각을가상의자바프로세스로설정하여실행하는것이다. 마지막으로완전분산방식은 TCP/IP 프로토콜로통신하는다수의노드로하나의클러스터를구성하는방식이다. 본논문에서는완전분산방식으로 Hadoop 기반의클러스터를구축한다. 3.1 클러스터구축본논문에서는클라우드컴퓨팅을위해소규모의동일한노드로구성된클러스터를구축한다. 클라우드클러스터환경은표 1과같다 [11].

52 韓國컴퓨터情報學會論文誌 (2010. 5.) 표 1. 클라우드컴퓨팅을위한클러스터환경 Table 1. Cluster environment for cloud computing 노드수 노드성능 운영체제 Hadoop 네임노드데이터노드 CPU 성능 RAM 용량 Linux(Ubuntu) Hadoop-0.19.1 1개 4개 듀얼코어 2 Ghz 2 GB 표 1의클라우드클러스터환경에서각노드의운영체제는 Linux(Ubuntu) 를포팅하고, Hadoop-0.19.1 을설치한다. 또한, 네임노드와데이터노드들은외부트래픽이없고대역폭이 100Mbps 인독립적인네트워크상의동일한스위치에연결된다. 3.2 Hadoop 환경설정 Hadoop은 hadoop-site.xml 파일을통해네임노드와통신할포트, HDFS 데이터복제수, 데이터블록크기등의속성을설정할수있다. hadoop-site.xml 파일의내용은그림 3과같다. Identifier) 를지정하는속성이다. fs.default.name 의속성값인 hdfs://192.168.0.1:9000는네임노드서버 IP와포트번호를각각 192.168.0.1과 9000으로설정하고 hdfs 프로토콜을사용하여통신한다는의미이다. mapred.job. tracker 는 MapReduce 분산처리작업을관리하는 Job Tracker 서버를설정하는속성이다. mapred.job.tracker 의속성값인 192.168.0.1:9001은 Job Tracker 서버 IP와포트번호를각각 192.168.0.1 과 9001 로설정하여사용한다는의미이다. 일반적으로네임노드가 Job Tracker 의기능을수행하기때문에그림 3에서는서버 IP를 192.168.0.1 로동일하게설정한다. hadoop-site.xml 파일에서 fs.default.name 속성과 mapred.job.tracker 속성은반드시설정하고, 다른속성은 Hadoop 에설정한기본적인속성값을지정한다. HDFS 에데이터를저장할때생성하는복제본의수는 dfs.replication 속성에지정한다. 기본적인복제본의수는 3 이다. dfs.block.size 는데이터블록의크기이며기본적으로 64MB 이다. 하지만본논문에서는 dfs.replication 과 dfs.block.size 의속성을다양하게변경하면서애플리케이션특성을분석하고성능을평가한다. <configuration> <property> <name>fs.default.name</name> <value>hdfs://192.168.0.1:9000</value> </property> <property> <name>mapred.jop.tracker</name> <value>192.168.0.1:9001</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.block.size</name> <value>67108864</value> </property> </configuration> 그림 3. hadoop-site.xml 설정 Fig. 3. Configuration of hadoop-site.xml 그림 3에서 fs.default.name 은파일시스템의마스터데이터를관리하는네임노드서버의 URI(Uniform Resource IV. 애플리케이션분석및성능평가 본논문에서는 Hadoop 의기본적인애플리케이션인 RandomTextWriter, WordCount, PI의특성을분석한다. 각애플리케이션의특성은표 2와같다. 표 2. 애플리케이션특성 Table 2. Application's characteristics 애플리케이션 RandomTextWriter WordCount PI 특성 I/O 중심계산 (CPU) 및 I/O 중심계산 (CPU) 중심 RandomTextWriter는주어진용량만큼임의의단어를생성하여 HDFS 에저장하는 I/O 중심의애플리케이션이고, WordCount 는입력파일을읽어서블록단위로단어빈도수를계산하는 I/O 및계산중심의애플리케이션이다. 본논문에서는 RandomTextWriter 에서생성한파일을 WordCount 의입력파일로사용하여단어빈도수를계산한다. PI는몬테카를로법을사

클라우드컴퓨팅에서 Hadoop 애플리케이션특성에따른성능분석 53 용하여 PI 값을유도하는계산중심의애플리케이션이다. RandomTextWriter, WordCount, PI 애플리케이션에대하여좀더상세히분석해본다. 4.1 애플리케이션의사코드분석 RandomTextWriter, WordCount, PI 애플리케이션을분석하기위해각애플리케이션의동작을의사코드로표현한다. RandomTextWriter, WordCount, PI 애플리케이션은 100~500 라인정도로간단하게 MapReduce 프로그래밍모델로작성할수있다. 그림 4, 5, 6은각애플리케이션들의주요동작에관련된부분인 map 함수와 reduce 함수를의사코드로표현한것이다. 이러한애플리케이션은 map 함수와 reduce 함수를오버라이딩 (overriding) 하여사용함으로써단순한코드만으로분산처리를구현할수있다. 단어에대한 value 를합산함으로써단어수를계산한다. 그리고그결과를 output 에저장하게된다. Function map(key, value, output) Text word = first word in value while (until last word in value) output.collect(word, 1) word = next word in value End map Function reduce(key, values, output) integer sum = 0 while (until last value in values) sum += values.next() output.collect(key, sum) End reduce 그림 5. WordCount 애플리케이션의사코드 Fig. 5. WordCount application pseudocode Text text_array[] = {word1, word2, word3... } Function RandomText() r = RandomInt() return text_arrya[r] End RandomText Function map(output) while (size of output < desired size) Text key = RandomText() Text value = RandomText() output.collect(key, value) End map 그림 4. RandomTextWriter 애플리케이션의사코드 Fig. 4. RandomTextWriter application pseudocode 그림 4의 RandomTextWriter 애플리케이션의의사코드를살펴보면 reduce 함수는사용하지않고, map 함수만사용한다. 즉, RandomTextWriter 애플리케이션은단순히임의의단어들을저장하여주어진크기의파일을생성해야하기때문에 reduce 함수를사용하지않는다. 그리고 map 함수에서주어진파일의크기까지만임의의단어들을 output 에저장한다. output 에저장된데이터는 key, value 구분없이 key 와 value 모두텍스트형데이터이다. 그림 5의 WordCount 애플리케이션은 map 함수에서파일의내용을단어단위로분리하여단어수를카운트한다. 각각의단어를 key 로하고, value 는 1로지정하여 output 에저장한다. reduce 함수에서는 map 함수의수행결과를 key, values 로전달받는다. 그리고 key 에해당되는특정 Function map(key, value, output) integer i = numoutside = numinside = 0 double x,y,d while ( i <= key, i += 1 ) x = randomdouble() y = randomdouble() d = x * x + y * y if ( d > 1 ) numoutside += 1 else numinside += 1 End if output.collect(0, numoutside) output.collect(1, numinside) End map Function reduce(key, values) if(key == 1) while (until last value in values) numinside += values.next() else while (until last value in values) numoutside += values.next() End if End reduce 그림 6. PI 애플리케이션의사코드 Fig. 6. PI application pseudocode 그림 6의 PI 애플리케이션은 map 함수내에서 key 값만큼반복하여임의의소수를생성하고계산한다. 이는몬테카를로법을통한 PI 유도식을 map 함수로구현한것이다. 계

54 韓國컴퓨터情報學會論文誌 (2010. 5.) 산된결과는 numoutside 와 numinside 로분류되는데, output 에저장할때 key 를 0과 1로구분하여저장한다. 그리고 reduce 함수에서는모든 map 함수에서계산한 numoutside 값과 numinside 값을각각더하게된다. 그리고최종적으로 reduce 함수의결과를이용하여 PI 값을유도하게된다. 4.2 성능평가본논문에서는애플리케이션의성능평가를위해 3장에서구축한클라우드클러스터를이용한다. 클라우드클러스터환경에서수행할애플리케이션환경은표 3과같다. 표 3. 애플리케이션환경 Table 3. Application's environment RandomTextWriter WordCount PI 파일생성크기 : 3 GB Task 당 1GB 생성입력파일크기 : 3 GB 샘플수 : 1000 만개 표 3의 RandomTextWriter 애플리케이션은 3GB 크기의텍스트파일을생성한다. 그리고이파일을 WordCount 애플리케이션의입력으로사용한다. WordCount 애플리케이션을수행할때는매우큰용량의텍스트파일이필요하기때문에 RandomTextWriter 애플리케이션을먼저수행하여생성된 3GB 크기의텍스트파일을입력으로사용한다. 본논문에서는애플리케이션의특성에따른성능을분석하기위해블록크기와데이터복제본수증가에따른수행시간을측정하여성능평가의척도로사용한다. 블록크기와데이터복제본수는 hadoop-site.xml 파일의 dfs.replication 속성과 dfs.block.size 속성에해당값을설정한다. HDFS 의입 출력에대한기본단위는블록이며, 데이터복제본수는노드실패를대비해블록을다른노드에저장하는수를의미한다. 블록크기증가에따른각애플리케이션의수행시간을측정한결과는그림 7과같다. 그림 7을살펴보면 RandomTextWriter 애플리케이션은블록크기에영향을크게받지않음을알수있다. 이것은각태스크에서블록단위로데이터를생성하는것이아니라주어진크기만큼데이터를생성하고, 로컬디스크에저장하기때문이다. 하지만 WordCount 애플리케이션은블록크기에크게영향을받는다는것을알수있다. WordCount 는 map 함수를수행할때, 데이터를블록단위로계산하기때문에블록크기가작다면그만큼 map 함수의수행빈도수가증가한다. 따라서통신비용과메모리할당등계산준비에따른시 간이증가한다. 특히, 블록크기가 256MB 이상일때는수행시간이급격히증가하는것을볼수있다. 이것은클라우드클러스터를구성하는노드들의성능이하드웨어적으로동일하다하더라도미비한전체적인성능차이때문에발생한것이다. 즉, 64MB 의블록을계산할때가장빠른노드와가장느린노드의실행시간차이가 10초라면 1024MB 의블록을계산할때는약 160초정도의실행시간차가발생한다. 따라서블록크기가 64MB 일때는빠른노드에서더많은작업을실행할수있지만, 블록크기가클수록빠른노드와느린노드는동일한작업수를할당받게되어최종작업완료시간은가장느린노드의완료시간이되는것이다. 그리고 WordCount 는중복된단어들이모두제거되고그단어의빈도수만 output 에작성되기때문에 output 의크기가매우작다. 그림 7. 블록크기증가에따른애플리케이션수행시간 Fig. 7. Block size vs. Execution time 데이터복제수에따른각애플리케이션의수행시간을측정한결과는그림 8과같다. 그림 8. 데이터복제본수증가에따른애플리케이션수행시간 ( 단어중복사용 ) Fig. 8. The numbers of data replication vs. Execution time (using overlaped words)

클라우드컴퓨팅에서 Hadoop 애플리케이션특성에따른성능분석 55 그림 8을살펴보면 RandomTextWriter 애플리케이션은데이터복제본수증가에비례하여수행시간이증가함을볼수있다. 이것은생성데이터를다른노드로전송하기때문에통신비용이증가하고, HDFS 에저장해야하는데이터크기는배수로증가하기때문에수행시간이증가한다. 반면에 WordCount 와 PI 애플리케이션은데이터복제본수에큰영향을받지않는다. PI 애플리케이션은각노드에서 map 함수로계산하고, 2개의실수형데이터만파일로저장한다. 따라서 PI 가생성하는 output 은실험에서가장작은블록크기인 8MB에도미치지못하기때문에블록크기에영향을받지않으며, 데이터복제수가증가해도큰영향을받지않음을알수있다. Input Output Input Output word1 word2 word3 word1 word3 word3 word1, 2 word2, 1 word3, 3 (a) 단어중복허용 (a)overlaped words word1 word2 word3 word4 word5 word6 그림 9. WordCount 출력 Fig. 9. Output of WordCount word1, 1 word2, 1 word3, 1 word4, 1 word5, 1 word6, 1 (b) 단어중복허용않됨 (b) non-overlaped words WordCount 의출력은그림 9의 (a) 와같이중복된단어들이모두제거되고그단어의빈도수만 output 에저장되기때문에 output 의크기가매우작아진다. 하지만그림 9의 (b) 와같이중복되지않는단어로구성되었을경우에는 WordCount 의 output 은입력파일크기인 3GB 보다커진다. 단어중복을허용하지않는경우, 데이터복제수에따른각애플리케이션의수행시간을측정한결과는그림 10 과같다. 그림 10을살펴보면에서 WordCount 의수행시간이 RandomTextWriter 에비해크게증가함을볼수있다. 중복되지않는단어로구성된입력파일을처리하는경우 WordCount 의 map 함수결과로발생한 output 이입력파일크기인 3GB보다커지기때문에계산량이증가하고, reduce 함수에서대부분의수행시간을차지하게된다. V. 결론 본논문에서는클라우드컴퓨팅을위해 Hadoop 기반의클러스터를구축한다. 그리고이클러스터환경에서 Hadoop 애플리케이션인 RandomTextWriter, WordCount, PI 를수행하여애플리케이션특성에따른클러스터의성능을평가한다. RandomTextWriter 는주어진용량만큼임의의단어를생성하여 HDFS 에저장하는애플리케이션이고, Word Count 는입력파일을읽어서블록단위로단어빈도수를계산하는애플리케이션이다. 그리고 PI는몬테카를로법을사용하여 PI 값을유도하는애플리케이션이다. 이러한애플리케이션을실행시키면서블록크기와데이터복제본수증가에따른수행시간을측정하여클러스터의성능을평가한다. RandomTextWriter 애플리케이션은데이터복제수증가에비례하여수행시간이증가함을알수있었다. 반면에 WordCount 와 PI 애플리케이션은데이터복제수에큰영향을받지않았다. 또한 WordCount 애플리케이션은블록크기가 32MB 이하또는 256MB 이상에서수행시간이증가한다. 따라서 WordCount 애플리케이션은블록크기가 64~256MB 일때최적의수행시간을얻을수있었다. 따라서이러한애플리케이션의특성을고려한클라우드컴퓨팅환경의스케줄링정책을개발한다면애플리케이션의실행시간을단축하여시스템의성능을향상시킬수있다. 참고문헌 그림 10. 데이터복제본수증가에따른애플리케이션수행시간 ( 단어중복허용않된경우 ) Fig. 10. The numbers of data replication vs. Execution time (using non-overlaped words) [1] Wikipedia, http://en.wikipedia.org/wiki/christophe_bisci glia, 2009 [2] Amazon Elastic Compute Cloud, http://aws.amazon.com/ec2, 2007

56 韓國컴퓨터情報學會論文誌 (2010. 5.) [3] IBM Blue Cloud project, http://www04.ibm.com/jct03001c/press/us/en /pressrelease/22613.wss,2009. [4] Google App Engine, http://code.google.com/appengine, 2009. [5] L. Wang and G. Von Laszewski, "Cloud Computing: A Perspective Study," In Proceedings of the Grid Computing Environments (GCE) workshop, Nov. 2008. [6] S. Ghemawat, H. Gobioff, S.T. Leung, The Google file system," ACM SIGOPS Operating Systems Review, Vol. 37, No. 5, pp. 29-43, Dec. 2003. [7] J. Dean and S. Ghemawat, "Mapreduce: Simplified Data Processing on Large Clusters," Communications of the ACM, Vol. 51, No. 1, pp. 107-113, Jan. 2008. [8] Hadoop, http://hadoop.apache.org, 2009. [9] J. Boulon, A. Konwinski, R. Qi, A. Rabkin, E. Yang and M. Yang, "Chukwa: A large-scale monitoring system," Proceeding of international conference on Cloud Computing and Its Applications, pp. 1-5, Oct. 2008. [10] J. Tan, X. Pan, S. Kavulya, R. Gandhi and P. Narasimhan, "Mochi: Visualizing Log-Anlaysis Based Tools for Debugging Hadoop," In USENIX Workshop on Hot Topics in Cloud Computing(HotCloud), SanDiego, CA, June 2009. [11] 금태훈, 김세회, 김건우, 이원주, 전창호, " 클라우드컴퓨팅을위한 Hadoop 애플리케이션특성분석 (An Analysis of Hadoop Application's Characteristics for Cloud Computing)," 한국컴퓨터정보학회 2009 하계학술발표논문집, 제17 권, 제1호, 11-12 쪽, 2009 년 7월. 저자소개금태훈 2009: 경일대학교컴퓨터공학과학사. 현재 : 한양대학교컴퓨터공학과석사과정. 관심분야 : 클라우드컴퓨팅, Grid 컴퓨팅이원주 1989: 한양대학교전자계산학과공학사. 1991: 한양대학교컴퓨터공학과공학석사. 2004: 한양대학교컴퓨터공학과공학박사현재 : 인하공업전문대학컴퓨터정보과부교수관심분야 : 병렬처리시스템, 성능분석, Grid 컴퓨팅, 클라우드컴퓨팅전창호 1977: 한양대학교전자공학과학사. 1982: Cornell University 컴퓨터공학과석사. 1986: Cornell University 컴퓨터공학과박사. 1977-1979: 전자통신연구소연구원. 현재 : 한양대학교전자컴퓨터공학부교수. 관심분야 : 병렬처리시스템, 성능분석, Grid 컴퓨팅, 클라우드컴퓨팅