PowerPoint 프레젠테이션

Similar documents
슬라이드 1

PowerPoint 프레젠테이션

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

Apache Ivy

About me 현 ) 그루터 ( 책임개발자 전 ) 큐릭스, NHN, 엔씨소프트 저서 ) 시작하세요! 하둡프로그래밍 : 기초부터실무

PowerPoint 프레젠테이션

슬라이드 1

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

HDFS 맵리듀스

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

02 C h a p t e r Java

歯MW-1000AP_Manual_Kor_HJS.PDF

빅데이터분산컴퓨팅-5-수정

서현수

PowerPoint 프레젠테이션

텀블러514

JUNIT 실습및발표

슬라이드 1

Ä¡¿ì³»ÁöÃÖÁ¾

Microsoft PowerPoint - 30.ppt [호환 모드]

PowerPoint 프레젠테이션

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

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

Microsoft PowerPoint - Java7.pptx

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

플랫폼을말하다 2

PCServerMgmt7

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

歯이시홍).PDF

<30322E F6F7020BCB3C4A1BFCD20BED6C7C3B8AEC4C9C0CCBCC7C0C720B1B8B5BF28B1DDC5C2C8C62C20B1E8BCBCC8B82C20C0CCBBF3C1D8292E687770>

RUCK2015_Gruter_public

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

CONTENTS CONTENTS CONTENT 1. SSD & HDD 비교 2. SSD 서버 & HDD 서버 비교 3. LSD SSD 서버 & HDD 서버 비교 4. LSD SSD 서버 & 글로벌 SSD 서버 비교 2

SLA QoS

NoSQL

CONTENTS Volume 테마 즐겨찾기 빅데이터의 현주소 진일보하는 공개 기술, 빅데이터 새 시대를 열다 12 테마 활동 빅데이터 플랫폼 기술의 현황 빅데이터, 하둡 품고 병렬처리 가속화 16 테마 더하기 국내 빅데이터 산 학 연 관

1217 WebTrafMon II

Appendix B

Ver. T3_DWS.UTP-1.0 Unit Testing Plan for Digital Watch System Test Plan Test Design Specification Test Cases Specification Date Team Infor

PowerPoint 프레젠테이션

EJB Transaction & Exception

포스코 사회공헌 활동 백서 2003_2006

슬라이드 1

Hadoop 예제 실행 매뉴얼

1

T100MD+

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

C# Programming Guide - Types

untitled

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

F120S_(Rev1.0)_1130.indd

Oracle Database 10g: Self-Managing Database DB TSC

MVVM 패턴의 이해

PowerPoint 프레젠테이션

untitled

특허청구의 범위 청구항 1 게임 서버 또는 미들웨어에 의해, 사용자 단말기로부터, GPS 정보, IP 정보, 중계기 정보 중 적어도 하나를 이 용한 위치 정보와, 상기 사용자 단말기에 설정된 언어 종류를 포함하는 사용자 정보를 수신하는 단계; 상기 게임 서버 또는 미들

비식별화 기술 활용 안내서-최종수정.indd

Microsoft Word - [TP_3][T1]UTP.docx

i-movix 특징 l 안정성 l 뛰어난화질 l 차별화된편의성

제8장 자바 GUI 프로그래밍 II

6.24-9년 6월

PowerPoint 프레젠테이션

김기남_ATDC2016_160620_[키노트].key

PowerPoint 프레젠테이션

ºÎ·ÏB

ecorp-프로젝트제안서작성실무(양식3)

Microsoft Word - SRA-Series Manual.doc

빅데이터_DAY key

Something that can be seen, touched or otherwise sensed

2

JVM 메모리구조

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

Interstage5 SOAP서비스 설정 가이드

[Brochure] KOR_TunA

Orcad Capture 9.x

<A4B5A4C4A4B5A4BFA4B7A4B7A4D1A4A9A4B7A4C5A4A4A4D1A4A4A4BEA4D3A4B1A4B7A4C7A4BDA4D1A4A4A4A7A4C4A4B7A4D3A4BCA4C E706466>

11강-힙정렬.ppt

Microsoft PowerPoint - VHDL08.ppt [호환 모드]

thesis-shk

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

untitled

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

구로구민체육센터 여성전용 기구필라테스 강좌 신설 구로구시설관리공단은 신도림생활체육관에서 2014년도부터 시행하여 주민의 큰 호응을 얻고있는 기구필라 테스 강좌를 일자로 구로구민체육센터에 확대 시행하게 되었습니다. 구로구 관내 고객들의 니즈를 반영한 기

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Who am I?

( )부록

adfasdfasfdasfasfadf

슬라이드 1

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

PowerPoint Presentation


Microsoft PowerPoint - jfeature장범석서재원박동현.pptm


KT Community Relations White Book

PowerPoint 프레젠테이션

Microsoft PowerPoint - eSlim SV [ ]

2007_2_project4

VOL /2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

Transcription:

Hadoop 애플리케이션 테스트하기 클라우다인대표김병곤 fharenheit@gmail.com

2 주제 Hadoop 의기본 MapReduce 의특징과테스트의어려운점 MRUnit 을이용한단위테스트기법 통합테스트를위한 Mini Cluster 성능테스트

3 V Model Requirement Acceptance Test Analysis System Test Design Integration Test Code Unit Test

테스트의중요성 4

5 파일시스템 : HDFS Yahoo Hadoop Tutorial

6 프로그래밍모델 : MapReduce HDFS 의파일을처리하기위한프로그래밍모델 Oreilly Hadoop Definitive Guide

7 WordCount Hadoop 의 MapReduce Framework 동작을이해하는핵심예제 각각의 ROW 에하나의 Word 가있을때 Word 의개수를알아내는예제 입력파일 (Mapper 의 Input) hadoop apache page hive hbase cluster hadoop page cloud copywrite 출력파일 (Reduce Output) apache 1 cloud 1 cluster 1 copywrite 1 hadoop 2 hbase 1 hive 1 page 2

WordCount 8

MapReduce 가가지는특징 Map 과 Reduce 가네트워크를경계로동작한다. Map 의 Output Key 를중심으로 Reduce 에서데이터를취합한다. Map, Reduce, Combiner, Partitioner, Input Format, Output Format, Multiple Output, Comparator 등등다양한구성요소가동작에영향을준다. 파일을직접다룬다. 분산환경에서동작한다. 대용량파일을다루므로처리하는데시간이오래걸린다. 9

MapReduce 의개발시주의할점 로그파일이크므로처리하는데오랜시간이소요되므로시간을단축시키는것은매우큰비용이절감됨 현장에서발생하는로그는훨씬더다양한케이스가존재하므로사전에충분한검증이이루어지지않으면추후급격한비용이발생 ( 일반개발은저리가라!!) 개발기간보다테스트기간이더길수있다. 데이터를이해하는눈썰미가꽤장점으로작용한다. 10

단위테스트 개발자가개발시진행해야하는단위로직에대한테스트 White Box 테스트 단위테스트의주요특징 단순 격리 자동화 커버리지 11

단위테스트 :: MRUnit Hadoop 의내장 Object 를 Mock Object 로구현한단위테스트프레임워크 Cloudera 가개발해서 Apache 에기증 최근 Top Level Project 로승격 문서없음. 기대하지마시길 직접빌드해서사용하세요. 매우친절하지않습니다. 12

MRUnit 이없다면 Hadoop Cluster 에 MR Job 실행하면서고생하게됩니다. Pseudo Mode 에서뭐좀해보려고하겠죠 생산성이도저히나오지않을거고, 메모리도부족할겁니다. 결과파일과입력파일을검증하는데고생좀할겁니다. 13

MRUnit 은어디서구하나요? 14

MRUnit 은어디서구하나요? 지금까지봤던 Apache Top Level Project 에서가장소스코드가없습니다. Map, Reduce, MapReduce 를별도로테스트할수있는 Driver 가제공됩니다. MRUnit 은 Map, Reduce 테스트그자체만집중합니다. 15

MRUnit 초기화 // Map, Reduce, MapReduce 테스트범위에따라서 Driver 를다르게생성합니다. public class GroupByMapReduceTest { private Mapper mapper; private Reducer reducer; private MapReduceDriver driver; } @Before public void setup() { mapper = new GroupByMapper(); reducer = new GroupByReducer(); driver = new MapReduceDriver(mapper, reducer); // Map & Reduce }... 16

MRUnit 테스트케이스작성 public class GroupByMapReduceTest {... @Test public void groupby() { Configuration conf = new Configuration(); conf.set("inputdelimiter", ","); conf.set("keyvaluedelimiter", ","); conf.set("valuedelimiter", ","); conf.set("allowduplicate", "false"); conf.set("allowsort", "false"); conf.set("groupbykey", "0"); driver.setconfiguration(conf); } } driver.withinput(new LongWritable(1), new Text(" 홍길동,a,b")); driver.withinput(new LongWritable(2), new Text(" 홍길동,b")); driver.withoutput(nullwritable.get(), new Text(" 홍길동,a,b")); driver.runtest(); 17

MRUnit 테스트케이스작성 public class GroupByMapReduceTest {... @Test public void groupby() { Configuration conf = new Configuration(); conf.set("inputdelimiter", ","); conf.set("keyvaluedelimiter", ","); conf.set("valuedelimiter", ","); conf.set("allowduplicate", "false"); conf.set("allowsort", "false"); conf.set("groupbykey", "0"); driver.setconfiguration(conf); } } driver.withinput(new LongWritable(1), new Text(" 홍길동,a,b")); driver.withinput(new LongWritable(2), new Text(" 홍길동,b")); driver.withoutput(nullwritable.get(), new Text(" 홍길동,a,b")); driver.runtest(); 18

MRUnit 의테스트케이스위치 19

MRUnit 의테스트케이스실행 20

Emma Code Coverage 설치 21

Code Coverage (1) 22

Code Coverage (2) 23

시간의흐름에따른단위테스트문제 처리해야할대상날짜 MapReduce Job 이실행하는날짜 D+0 D+1 D+2 D+3 D+4 날짜 : 20121103 단위데이터 OUTPUT /vdi/logical/2012/11/02 OUTPUT INPUT /incomplete/2012/11/02 /log/2012/11/02 24

시간의흐름에따른단위테스트문제 처리해야할대상날짜 MapReduce Job 이실행하는날짜 D+0 D+1 D+2 D+3 D+4 날짜 : 20121104 단위데이터 OUTPUT /logical/2012/11/03 OUTPUT /physical/2012/11/03 INPUT /incomplete/2012/11/02 INPUT /log/2012/11/03 25

시간의흐름에따른단위테스트문제 날짜를입력받을수있도록조정하고현재날짜의기준을입력받은파라미터로처리 Configuration conf = new Configuration(); conf.set("currentdate", "20121102"); driver.setconfiguration(conf); // 입력파일을로딩한다. load(driver, "/20121102_complete.csv"); // MapReduce 를실행한다. List<Pair<NullWritable, UserPreference>> ran = driver.run(); DrivingInformation first = ran.get(0).getsecond(); DrivingInformation last = ran.get(ran.size() - 1).getSecond(); Assert.assertEquals("2012110211204500", first.curtime); Assert.assertEquals("2012110211210000", last.curtime); Assert.assertEquals(16, ran.size()); 26

통합테스트 MRUnit 이 Mapper 와 Reducer 를함께테스트는할수있지만 MapReduce Job 자체를테스트하지는않음 그렇다고 Hadoop Cluster 에직접테스트하는것은너무앞서가는것 Mini Cluster 를사용하자 MapReduce를시뮬레이션하는 MiniMRCluster HDFS를시뮬레이션하는 MiniDFSCluster 27

성능테스트 MapReduce 의성능시험은 MapReduce Job 의수행시간을대략적으로예상해볼수있다. 주요모니터링항목 Disk I/O 성능 CPU 점유율 Network Bandwidth MapReduce Job의수행시간 MapReduce Job의에러건수 MapReduce Job의 Task 개수에따른수행시간 벤치마킹도구 : MR Bench, TeraSort, TeraGen, DFSIO 28

Ganglia 모니터링 29

Task 개수와 JVM Heap Size 파일명구분키값 core-site.xml fs.default.name fs.checkpoint.dir hadoop.tmp.dir io.compression.codecs hdfs://192.168.0.100:9000 /data/secondary /tmp/hadoop-${user.name} org.apache.hadoop.io.compress.gzipcodec, org.apache.hadoop.io.compress.defaultcodec, org.apache.hadoop.io.compress.bzip2codec, org.apache.hadoop.io.compress.snappycodec hdfs-site.xml mapred-site.xml dfs.name.dir /data/name dfs.name.dir /data1/data,/data2/data, dfs.http.address 192.168.0.100:50070 dfs.secondary.http.address 192.168.0.101:50090 dfs.block.size 134217728 mapred.local.dir /data/mred/local mapred.system.dir /hadoop/mapred/system mapred.tasktracker.map.tasks.maximum 8 mapred.tasktracker.reduce.tasks.maximum 4 mapred.child.java.opts -Xmx1024M mapred.job.tracker 192.168.0.100:9001 mapred.map.tasks 24 mapred.reduce.tasks 12 30

워크로드패턴식별 실제데이터가없다면벤치마킹할 MapReduce Job 과유사한벤치마킹테스트로시뮬레이션해본다. 31

CPU 리소스모니터링 32

DFSIO # hadoop jar hadoop-mapreduce-*tests.jar TestDFSIO \ -write \ -nrfiles 1000 \ -filesize 500... Total MBytes processed: 50000.0 Throughput mb/sec: 4.280953865016388 Average IO rate mb/sec: 6.916503429412842 IO rate std deviation: 6.55725357815042 Test exec time sec: 1050.286 33

JBoss Community (http://www.jboss.org) Korea JBoss User Group (http://cafe.naver.com/jbossug) 34