빅데이터분석을위한 Hadoop 설치및활용가이드 (II) Installation and Operation Guide of HADOOP for Big-data Analysis (II) 옥창석 부산대학교컴퓨터공학과, 그래픽스응용연구실 csock@pusan.ac.kr Abstract 본보고서에서는빅데이터분석을위한 Hadoop 설치및활용가이드 (I) [1] 에서다루었던 pseudo-distributed mode 에서확장하여실제분산환경에맞는 fully distributed mode 로설정하는방법을알아본다. 그리고 4 대의서버가연결된완전분산처리환경에서 Hadoop 의 wordcount 예제를구동해보고, wordcount 예제를통해 Hadoop 에서 MapReduce 를이용하여분산처리하는과정을알아보는것으로본보고서를마친다. 향후에는구축된 Hadoop 시스템을이용하여 BWT 를수행하는방법에대해연구할것이다. Keywords: Big-data, Hadoop, MapReduce, Distributed processing system 1 서론 이전의기술보고서 [1] 에서소개한바와같이, 최근소셜네트워크는물론활발한인터넷정보교류로인해방대한데이터들이생성되고있다. 이러한흐름에따라방대한데이터를분석하여시장의추세, 사용자들의성격등을예측하는빅데이터가각광을받고있다. 하지만수 TB 의초대용량데이터를분석하는것은엄청난시스템요구사항을필요로하기때문에기존의일반적인처리방식을사용하는것은불가능하다. 따라서다수의소규모시스템을엮어서로상호작용하며처리하는방식인분산처리기법이다시활발히연구되고있으며, 그중 Hadoop이라는맵리듀스기반의분산처리프레임워크가오픈소스로공개되면서빅데이터의진입장벽이낮아졌다. Hadoop은서버같이대규모시스템과달리비교적불안정한소규모 PC를대상으로분산처리작업을하도록설계되었기때문에안정성이뛰어나며설치및사용에있어편리하다. 또한맵리듀스를기반으로하는분산처리환경으로인해실제프로그래머는맵과리듀스부분만을프로그래밍하면작업의분할및할당, 결과종합은 Hadoop 프레임워크에서모두자동으로처 1
리한다. 그리고오픈소스이기때문에소규모회사및단체에서도무료로사용할수있으며디버깅, 모니터링을위한환경도제공한다. 본보고서에서는 Hadoop의설치를다루었던이전 TR [1] 에이어가상분산처리환경이아닌실제완전분산처리환경을구축하는방법에대해알아본다. 본보고서에서완전분산처리환경을구축하기위해사용한서버는총 4개이며, 그림 1과같이시스템구조를설계하였다. NameNode Host : diamond IP : 111.111.111.74 Secondary NameNode Host : photo IP : 111.111.111.89 MASTER DataNode Host : topaz IP : 111.111.111.73 DataNode Host : ruby IP : 111.111.111.96 SLAVE 그림 1: 4 개의서버를이용한완전분산처리모드구축설계도. Diamond 와 photo 가마스터서버가되며, topaz 와 ruby 가슬레이브가된다. NameNode인 diamond는실제 master역할을하는노드이며, photo는 diamond의동작에이상이발생하면대체되어전체시스템의안정성을향상시키는역할을수행하는 secondary NameNode이다. 초기 jobtracker는 NameNode인 diamond에서만동작하며, secondary NameNode 인 photo에서는동작하지않는다. 그리고 topaz와 ruby는 DataNode로써 diamond의명령을받아 Hadoop 프레임워크에서작업을처리한다. Tasktracker는 topaz와 ruby 두군데서동작한다. 2 배경지식 Hadoop은총세가지모드로나누어진다. 첫번째는 standalone mode로데몬프로세스가동작하지않고모두단독의 JVM 내에서동작하는모드이다. 이모드는테스트와디버그가쉽기때문에개발에적합하다. 두번째는 pseudo-distributed mode로 Hadoop 데몬프로세스가로컬컴퓨터에서동작하므로클러스터를시뮬레이션할수있다. 세번째는 fully distributed mode 로하둡데몬프로세스가여러컴퓨터로구성된그룹에서동작한다. Standalone mode는하둡을설치하면기본으로설정된값을사용하면바로사용할수있다. Pseudo-distributed mode는약간의설정파일을수정함으로써환경을구축할수있고, fully distributed mode는 pseudo-distributed mode에서약간의인터페이스를조절하고, 환경설정을 2
수정함으로써구축할수있다. 본격적인설치과정에들어가기에앞서, 간단하게 Hadoop에서사용하는용어를정리하면아래의표 1과같다. 표 1: Hadoop에서사용하는용어목록 [1]. 영문표기 한글표기 의미 HDFS 하둡분산파일시스템 다수의클러스터를제어하는분산파일시스템 NameNode 네임노드 파일시스템메타데이터관리와컨트롤서비스제공 DataNode 데이터노드 블록저장과읽기서비스제공 Master 마스터 파일시스템을관리하고클라이언트의접근을통제 Slave 슬레이브 마스터에의해제어되는클라이언트 Map 맵 각각의입력레코드를병렬로처리 Reduce 리듀스 모든관련레코드는하나의개체로처리 JobTracker 잡트레커 Job의제출, 모니터링, task 관리 TaskTracker 테스크트레커 Map/Reduce task 관리 3 Fully Distributed Mode 설정 본보고서는이전의보고서 [1] 를기반으로 pseudo-distributed mode에서 fully distributed mode 로변경하는방법을소개한다. 따라서본보고서의설정사항을따르기전에이전의보고서를참고하여 Hadoop의기본설치및환경설정방법을수행해야한다. 이전의보고서를따라 pseudodistributed mode 설정을완료하였다면, 각각의서버들끼리아무런제약없이 ssh로접속하여명령을교환할수있도록해야한다. ssh의설정과정은세부적으로 3단계로나누어지며, ssh-keygen 을이용하여공개키를생성하고생성된공개키를등록하고, ssh를이용하여접속가능여부를확인하는작업으로구성된다. ssh를이용한통신설정이완료되면, pseudo-distributed mode에서수정했던 conf디렉토리내의파일들을완전분산모드에맞도록수정한다. 더욱자세한사항은필자의블로그 [2] 를참조하기바란다. Fully distributed mode를설정하는데사용하는모든서버들은각자의 hostname을가지고있으며각각의서버 ip와 hostname을모든서버의 /etc/hosts파일에등록이되어있어야한다. hosts파일을수정하지않는다면아래의설명에서사용하는모든 hostname은 ip로바꾸어야한다. 3.1 공개키생성 본작업은 diamond 와 photo, topaz, ruby 에서각각이루어져야한다. 즉, diamond 에서공개키 를생성하고, photo 에서공개키를생성하는식으로모든과정이병렬적으로각각의서버에서 3
실행되어야한다. 공개키를생성하는명령어는아래와같다. [ $ssh-keygen ] 각각의서버에서공개키를생성하는위명령어를입력하면다양한질문이나타나는데, 이 경우에모두아무런입력없이엔터만쳐서넘어가도록한다. 공개키생성과정을통해생성된 파일은 /.ssh/id rsa.pub 이며각노드별로생성하여파일명을변경한예는아래와같다. [ /.ssh/diamond id rsa.pub ] [ /.ssh/photo id rsa.pub ] [ /.ssh/topaz id rsa.pub ] [ /.ssh/ruby id rsa.pub ] 위 4 개의파일을각서버별로 ftp 등을이용하여모두가지도록한뒤, 4 개의파일을 cat 명령어를사용하여 authorized keys 에 append 한다. 3.2 공개키등록각서버에서생성한공개키 4개를각각의서버가모두가지도록한다음, 비밀번호입력없이상호간의 ssh접속이가능하도록 ssh의 authorized keys에등록한다. 이과정도각각의서버에서이루어져야한다. [ $cat /.ssh/diamond id rsa.pub >> /.ssh/authorized keys.pub ] [ $cat /.ssh/photo id rsa.pub >> /.ssh/authorized keys.pub ] [ $cat /.ssh/topaz id rsa.pub >> /.ssh/authorized keys.pub ] [ $cat /.ssh/ruby id rsa.pub >> /.ssh/authorized keys.pub ] ssh디렉토리내의 authorized keys는 ssh를이용하여접속시비밀번호입력등의인증과정을생략할수있도록인증된키를관리하는파일이다. 즉, authorized keys에자신의키가등록되어있으면별다른인증절차없이바로 ssh 접속이가능하다. 따라서본보고서에서는 Hadoop이설치된 4개의서버들각각에모든서버들의공개키를한꺼번에등록하여상호간에제약없이 ssh통신을가능하도록한것이다. 4
3.3 ssh를이용한접속확인모든공개키를정상적으로등록하였다면 ssh를이용하여아래와같은명령어를입력하였을때, 비밀번호를묻지않아야한다. 이작업또한모든서버에서모든접속가능한쌍에대해수행해보아야한다. [ diamond$ssh diamond ] [ diamond$ssh photo ] [ diamond$ssh topaz ] [ diamond$ssh ruby ] [ ruby$ssh diamond ] 만약비밀번호를묻는다면공개키가정상적으로등록되지않은것이니공개키를생성하고 등록하는과정에서빠뜨린것이없는지확인해봐야한다. 3.4 환경설정파일수정 Fully distributed mode로변경하기위해서는 pseudo-distributed mode로설정할때수정했던 conf디렉토리내부의환경설정파일들을바꿔줘야한다. 수정할파일은 core-site.xml, hdfssite.xml, mapred-site.xml, masters, slaves 파일이다. 환경설정파일은마스터서버인 diamond 에서만수행하며, 모든수정이끝난후에나머지서버들에게공통적으로동기화시켜준다. 각환경설정파일에서사용하는옵션들에대한설명은하둡홈페이지의맵리듀스튜토리얼 [3] 을참고하기바란다. 3.4.1 core-site.xml core-site.xml파일에서는 HDFS와맵리듀스에공통적으로사용하는 I/O 등을설정할수있다. 본보고서에서는완전분산모드의마스터서버인 diamond를네임노드로설정한다. 이때사용되는포트는일반적으로 9000번을사용한다. [ csock#vi core-site.xml ] <property> <name>fs.default.name</name> <value>hdfs://diamond:9000</value> </property> 5
3.4.2 hdfs-site.xml hdfs-site.xml에서는네임노드와보조네임노드, 데이터노드등 HDFS 데몬을설정할수있다. 본보고서에서는아래와같이 HADOOP HOME/dfs에 name과 data 디렉토리를만들었다. 그리고데이터의안정성을위해사본 3개를만들도록설정한다. 이렇게사본의개수를설정하게되면각각의데이터노드에데이터의사본들이만들어져저장되며, 일부가손상되더라도사본을이용하여복구할수있어안정성이높아진다. [ csock#vi hdfs-site.xml ] <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.name.dir</name> <value>/home/csock/hadoop/hadoop-1.0.4/dfs/name</value> </property> <property> <name>dfs.data.dir</name> <value>/home/csock/hadoop/hadoop-1.0.4/dfs/data</value> </property> 3.4.3 mapred-site.xml mapred-site.xml 에서는잡트레커와테스크트레커등맵리듀스와관련된데몬을설정할수있다. 본보고서에서는네임노드인 diamond 의 9001 번포트에잡트레커를할당하였다. [ csock#vi mapred-site.xml ] 6
<property> <name>mapred.job.tracker</name> <value>diamond:9001</value> </property> <property> <name>mapred.system.dir</name> <value>/home/csock/hadoop/hadoop-1.0.4/mapred/system</value> </property> <property> <name>mapred.local.dir</name> <value>/home/csock/hadoop/hadoop-1.0.4/mapred/local</value> </property> 3.4.4 masters masters파일은마스터가될네임노드의호스트명을한줄에하나씩적으면된다. masters파일에적힌노드는보조네임노드 (Secondary NameNode) 가되며, 실제마스터인네임노드는 coresite.xml에설정한 diamond이다. 즉, masters파일에 diamond를넣게되면 diamond는네임노드이면서보조네임노드가되는것이다. 일반적으로보조네임노드는네임노드에문제가생겼을때, 네임노드의역할을대신하게되는안정성과관련된것으로, 네임노드와보조네임노드는서로분리된시스템으로설정해야한다. 따라서본보고서에서는앞서소개한설계사항에맞춰 photo 를보조네임노드로설정한다. [ csock#vi masters ] photo 3.4.5 slaves slaves파일은데이터노드가되어각각의테스크를처리하는노드를한줄에하나씩적으면된다. 본보고서에서는 fully distributed mode이기때문에 topaz와 ruby를데이터노드로지정한다. 이렇게하면최종적으로네임노드가 diamond, 보조네임노드가 photo, 데이터노드는 topaz와 ruby가된다. [ csock#vi slaves ] 7
topaz ruby 3.5 환경설정파일동기화지금까지수정한모든환경파일은 diamond뿐아니라다른서버들도같은환경설정을가지도록동기화해주어야한다. 리눅스의 ssh접속을열어놓았으므로리눅스의 rsync명령어를통해 photo, topaz, ruby서버에 diamond에서수정한환경설정파일들을모두동기화한다. 이때, diamond에서수정한파일의내용은절대변경해서는안되며수정한상태그대로각각의서버의환경설정파일로동기화되어야한다. rsync명령어는 diamond의 conf디렉토리내에서실행하며대상경로는자신이하둡을설치한경로로변경하면된다. [ diamond$rsync -av -e ssh. photo:$hadoop INSTALL/conf ] [ diamond$rsync -av -e ssh. topaz:$hadoop INSTALL/conf ] [ diamond$rsync -av -e ssh. ruby:$hadoop INSTALL/conf ] 3.6 방화벽설정 Pseudo-distributed mode와달리 fully distributed mode에서는각각의독립된서버상에서통신이이루어지기때문에방화벽설정에의해데이터송수신에제약이발생할수있다. 따라서 Hadoop을설치한 4대의서버간에는방화벽설정을풀어제약을없애야한다. 방화벽설정을바꾸는방법은리눅스의데스크탑 GUI화면에서방화벽설정에들어가서해당포트를개방해주면된다. 이때 Hadoop에서사용하는포트인 9000, 9001, 50000 50100번포트를개방한다. 만약데스크탑 GUI가없는리눅스환경이라면 /etc/sysconfig/iptables파일을수정하여개방할포트를설정해주면된다. 3.7 Hadoop 네임노드포멧 모든설정이끝났으면수정한사항을적용하여 HDFS 를포멧해야한다. 다음의명령어를이용 하여 Hadoop 의네임노드를포멧한다. [ csock#hadoop namenode -format ] 만약이전에작업한내용이남아있거나노드의정보 (ip 또는호스트명 ) 가변경된경우, 다음 의순서에따라포멧해야에러가발생하지않는다. 8
1. NameNode(diamond) 에서 NameNode 를포멧 [ diamond$hadoop namenode -format ] 2. diamond 를제외한다른노드의 HDFS 디렉토리완전삭제. 이때, 삭제할디렉토리경로는 hdfs-site.xml 에서 dfs.data.dir 에서설정한경로이다. [ photo$rm -rf /home/csock/hadoop/hadoop-1.0.4/hdfs ] [ topaz$rm -rf /home/csock/hadoop/hadoop-1.0.4/hdfs ] [ ruby$rm -rf /home/csock/hadoop/hadoop-1.0.4/hdfs ] 현재까지 conf 디렉토리내의파일들을수정하여 pseudo-distributed mode 로설정하는방법 을살펴보았다. 다음으로는정상적으로 Hadoop 이구동되는지를확인하기위해간단한예제를 실행해본다. 4 Hadoop 에서의 MapReduce 구동 4.1 Hadoop 실행 - 맵리듀스와 HDFS Hadoop 완전분산처리모드로의환경설정이끝났으면 Hadoop를이용하여작업을처리하는간단한예제인 wordcount가 MapReduce에서어떻게처리되는지를살펴본다. 예제를살펴보기에앞서 conf 디렉토리에서수정한파일들을이용하여 Hadoop을구동한다. Hadoop을구동하는방법은아래와같다. HDFS와맵리듀스를함께시작 : [ csock#start-all.sh ] HDFS와맵리듀스를함께중지 : [ csock#stop-all.sh ] HDFS만시작 : [ csock#start-dfs.sh ] HDFS만중지 : [ csock#stop-dfs.sh ] 맵리듀스만시작 : [ csock#start-mapred.sh ] 맵리듀스만중지 : [ csock#stop-mapred.sh ] 모든과정이정상적으로이루어졌다면 start-all.sh를두번실행했을때, 각각의프로세스번호가출력된다. 만약잘못되었다면 logging이라는메시지와함께로그가담긴파일명을출력한다. 해당로그는 Hadoop이설치된디렉토리 /home/csock/hadoop/hadoop-1.0.4/logs에있으며 *.log파일을열어보면에러메시지등을확인할수있다. 주의할점은 *.log파일은 append 9
되기때문에가장최근로그를확인하고싶으면아래쪽으로내려서확인해야한다. 또한그림 2 와같이웹브라우저를통해현재 Hadoop 노드들의상태를모니터링할수있다. 1. 네임노드인 diamond에서의모니터링페이지맵리듀스모니터링 : http://diamond:50030 HDFS 모니터링 : http://diamond:50070 2. topaz와 ruby에서의 50060(tasktracker) 를이용한테스크모니터링페이지 Task 모니터링 : http://topaz:50060, http://ruby:50060 (a) (b) 그림 2: 맵리듀스모니터링화면 (a) 와 HDFS 모니터링화면 (b). (a) 에서는각노드들이맵리듀스를수행하는과정을모니터링할수있으며각각링크를누르면더욱자세한정보를확인할수있다. (b) 에서는 HDFS 의용량및살아있는노드의정보와죽어있는노드의정보를확인할수있다. 4.2 MapReduce의동작 MapReduce는구글에서 2004년에논문 [4] 으로발표한분산처리용소프트웨어프레임워크이다. Hadoop은분산처리를위해 MapReduce를내부적으로사용하고있으며, Map과 Reduce라는두개의단계를통해분산처리를수행한다. 본보고서에서는 Hadoop에서사용하는 MapReduce의기본적인구조를소개하며사용자로부터입력받은작업인잡 (job) 을어떻게분산처리하는지를소개한다. 개략적인 Hadoop에서의 MapReduce를나타내면그림 3과같다. Hadoop에서 MapReduce를수행할때, 각단계별세부동작을거친다 [5]. 1. 사용자는잡에대한실행정보를설정한후 waitforcompletion 메서드를호출해잡을실 행한다. 10
네임노드 데이터노드 클라이언트 1. 맵리듀스잡실행잡클라이언트 2. 신규잡제출 3. 입력스플릿생성 입력데이터 Job Tracker Job Job Job 4. 잡할당 Task Tracker Task Task Task 매퍼 5. 매퍼실행 파티셔너 매퍼 키 - 값 키 - 값 6. 정렬, 병합 7. 리듀서실행 리듀서 리듀서 키 - 값 키 - 값 8. 출력데이터저장 출력데이터 그림 3: Hadoop 에서의 MapReduce 구조도. 크게네임노드와데이터노드로나누어지며실제 MapReduce 가동작되는곳은데이터노드쪽이다. 2. 잡인터페이스에서는새로운잡클라이언트객체가생성되고, 이객체가잡트래커에접속해잡을실행해줄것을요청한다. 이때, 잡트래커는잡클라이언트에게새로운잡ID를반환하고, 잡ID를전달받은잡클라이언트는사용자가설정한출력경로를확인하는데, 이미존재하는경로를입력했으면에러가발생하고맵리듀스프로그램이종료된다. 3. 잡클라이언트는잡의입력데이터에대한입력스플릿을계산한다. 입력스플릿이계산되고나면입력스플릿정보, 설정파일, 맵리듀스 JAR파일을 HDFS에저장하고, 잡트래커에게잡을시작할준비가끝났음을알려준다. 4. 잡클라이언트의메시지를받은잡트래커는잡을큐에등록하고, 잡스케줄러가큐 (Queue) 를가져와서초기화한다. 초기화후잡스케줄러는잡클라이언트가 HDFS에등록한입력스플릿정보를가져와입력스플릿의개수만큼맵태스크를생성하고 ID를부여한다. 태스크트래커는주기적으로잡트래커의하트비트라는메서드를호출해서자신의상태정보를잡트래커에게알려준다. 이상태정보에는 CPU, 메모리, 디스크와같은서버가용리소스정보와현재실행중인태스크개수, 실행가능한최대태스크개수, 신규태스크실행가능여부와같은태스크트래커의실행정보가저장된다. 잡트래커는하트비트메서드를 11
통해전달된정보를이용해어떠한태스크트래커에게태스크실행을요청할지결정한후, 해당태스크트래커에태스크실행을요청한다. 5. 태스크트래커는잡트래커가할당해준맵태스크를실행한다. 맵태스크는사용자가설정한매퍼클래스이며, 입력스플릿은키와값의형태로맵태스크의입력데이터로전달된다. 맵태스크는맵메서드에정의돼있는로직을실행하고, 출력데이터를메모리버퍼에저장한다. 이때파티셔너는해당출력데이터가어떤리듀스태스크에전달돼야할지를결정하고, 그에맞는파티션을지정해준다. 파티션에서는메모리에있는데이터를키에따라정렬한후, 로컬디스크에저장한다. 파티션별로디스크저장이완료되면이파일들은하나의출력파일로병합되고정렬된다. 6. 리듀스태스크는사용자가설정한리듀서클래스이다. 리듀스태스크는자신이필요한맵태스크의모든출력데이터가있어야만작업을실행할수있다. 이를위해, 맵태스크는출력이완료되면자신을실행한태스크트래커에게작업이성공적으로끝났다고알려주고, 이메시지를받은태스크트래커는잡트래커에게해당맵태스크의상태와맵태스크의출력데이터경로를알려준다. 리듀스태스크에서는주기적으로잡트래커에게맵태스크의출력데이터경로를물어보며, 출력데이터경로가정상적으로조회되면해당출력데이터를로컬노드로복사한다. 이때파일이크면디스크로복사하고, 작을경우메모리로복사한다. 7. 리듀스태스크는모든맵태스크의출력데이터를복사한후, 맵태스크의출력데이터를병합한다. 병합이완료되면리듀스메서드를호출해서분석로직을실행한다. 8. 리듀스태스크는출력데이터를 HDFS에 part-nnnnn이라고저장한다. 여기서 nnnnn는파티션 ID를의미하며, 00000부터 1씩증가된다. 이전 TR [1] 에서다룬 wordcount 예제를통해실제 MapReduce 과정이어떻게수행되는지를 살펴보면그림 4 와같다. 각단계별로세부적인동작과정은아래와같다 [5]. 1. 맵리듀스는입력파일을키와값형식의데이터로분류한다. 이예제에서키는라인번호이고값은문장이다. 2. 키와값형식의데이터는맵메서드의입력데이터로전달된다. 3. 맵메서드는라인번호별로문장을체크해키에해당하는글자별로글자수를출력한다. 4. 맵리듀스는맵메서드의출력데이터를정렬하고병합한다. 5. 4번의결과가리듀스메서드의입력데이터로전달된다. 12
Word count 입력데이터분리 맵메서드 정렬과병합 Map / Reduce Example read a book write a book <#1, read a book> <#2, write a book> 1 2 Map 3 <read, 1> <a, 1> <book, 1> <write, 1> <a, 1> <book, 1> 4 입력데이터 키 : 라인번호값 : 라인 키 : 글자값 : 글자수 리듀스메서드 저장 <read, (1)> <a, (1, 1)> <book, (1, 1)> <write, 1> 5 Reduce 6 <read, 1> <a, 2> <book, 2> <write, 1> 7 read, 1 a, 2 book, 2 write, 1 키 : 글자값 : 글자수목록 키 : 글자값 : 글자수합계 출력데이터 그림 4: WordCount 예제를통한 MapReduce 의동작과정. Mapper 에서는 (key:value) 를 (word:1) 로만들어출력하며, Reducer 에서는 (key:value) 를 (word: 글자수의합 ) 으로만들어출력한다. 5 결론 본보고서에서는 Hadoop의기본개념과함께실제완전분산처리환경인 fully distributed mode 로환경을설정하는방법을알아보았다. 앞선 TR [1] 에서소개한바와같이 Hadoop은오픈소스프로젝트로활발하게업그레이드되고있으며현재 2.0.3-alpha까지릴리즈되었다. 또한안정적인서버군을고려하고만들어진것이아니라일반적이고저렴한 PC환경을고려하여설계되었기때문에프레임워크자체의안정성및확장성이높다. 무엇보다도최근다양한분야에서끊임없이쏟아지는방대한데이터를처리하기위한빅데이터프로젝트가상당한인기를끌고있기때문에이러한흐름에맞춰빅데이터를분석하는데필요한분산처리시스템을사용하는방법을익히는것이중요하다. 따라서본보고서에서는본격적인활용을위해 Hadoop을완전분산처리환경으로구축하는방법을소개하고간단한예제를실행해보았으며 MapReduce 상에서어떻게예제가동작되는지를살펴보았다. 향후에는구축된분산처리환경을이용하여 BWT를수행하는방법을연구할것이다. 마지막으로 Hadoop 가이드 [1] 와본보고서에서다룬내용을요약하면아래와같다. 1. Hadoop 의설치및 pseudo-distributed mode 환경설정 2. Pseudo-distributed mode 에서의 WordCount 예제실행 3. Hadoop 의 fully distributed mode 환경설정 13
4. MapReduce 를이용한 WordCount 의동작과정 References [1] 옥창석, 빅데이터분석을위한 Hadoop 설치및활용가이드 (i), TR-13-02-OCS, 2013. [2] 옥창석, [ 빅데이터 ] (2) HADOOP, Fully Distributed mode 설정법, http://blog.naver. com/adonis50/178774994. [3] Apache, MapReduce Tutorial, http://hadoop.apache.org/docs/r1.0.4/mapred_ tutorial.html. [4] Jeffrey Dean and Sanjay Ghemawat, MapReduce: simplified data processing on large clusters, Commun. ACM, vol. 51, no. 1, pp. 107 113, Jan. 2008. [5] 정재화, 시작하세요! 하둡프로그래밍, 위키북스, 2012. 14