졸업작품중간보고서 - 구글 MapReduce 를이용한클라우드컴퓨팅 - 200814194 조중연 200814187 서종덕 지도교수님진현욱교수님 ( 인 )
목 차 1. 개요및목적 2. 관련기술및기술동향 I. 관련기술 II. 기술동향및사례조사 3. 프로젝트세부사항 I. 개발내용 II. 동작과정 III. 개발환경 4. 진행사항 I. 개발환경설정 II. 설치및환경설정현황 III. 클러스터운영현황 IV. MapReduce 프레임워크개발환경구축 5. 앞으로의진행사항및추가사항 I. 앞으로의진행사항 II. 추가고려사항 6. 참고문헌
1. 개요및목적 I. 개요 점차데이터의크기는방대해지고, 메인프레임과같은서버의하드웨어는증설에다양한방면으로어려움을겪고있다. 하드웨어를증설하기에비용과함께서버를설치할수있는공간과같은문제들로인해앞으로는대용량데이터저장과운영에대해새로운방법을적용하지않을수없게될것이다. 그렇기때문에분산저장및분산데이터처리에대한부분이다시금주목받고있고, 대표적인개념으로 Cloud Computing 이널리알려져있다. 그렇기에 Cloud Computing을이용해서데이터를분산저장하고, 분산된데이터를처리하여사용자에게제공하고앞서제기한문제들의해결책을고려해보기위해서이번프로젝트를계획하게되었다. II. 목적 구글에서개발하고오픈소스로제공하는분산저장프레임워크인 MapReduce를이용하여대용량데이터를저장하고처리하는시스템을제작하고, 저장된데이터를빠른시간에검색할수있는검색엔진을활용하여사용자가 Web을통해서자료를검색할수있는인터페이스를제공한다. 이를통해 Cloud Computing의운영에대해이해하고, 분산저장파일시스템인 HDFS의이해하여대용량데이터처리에대한이해를높이기위함이다.
2. 관련기술및기술동향 I. 관련기술 A. Cloud Computing 가 ) 개요 - 우리가사용하고있는소프트웨어나많은정보들을 PC안이아닌인터넷어딘가에저장하고, 이를각종 IT 기기들로손쉽게정보를공유하고사용하는사용자환경을지칭한다. 사용자는해당자원이어디에위치해있는지를고려할필요가없이구름너머의어딘가에요청만하면된다는의미에서 Cloud 라는단어가사용되게되었다. 나 ) 서비스종류 - SaaS(Software as a Service) : 응용 SW를서비스로제공한다. 현재 Google Office, Google calendar, Salesforce.com의 ERP, CRM 등의서비스가제공되고있다. - PaaS(Platform as a Service) : SW 개발환경을서비스로제공한다. 개발환경이란 Programming Language와같이개발언어를의미한다. Google의 AppEngine 서비스를대표적인예로들수있다. - IaaS(Infrastructure as a Service) : 실제적인컴퓨터시스템 HW자원을서비스로제공한다. Amazon Web Service(AWS) 의 S3 및 EC2 서비스를대표적인예로들수있다. - 기타개념으로 XaaS 아래 Aaas, Haas, Daas등이존재한다.
B. GFS (Google File System) 가 ) 개요 - Google에서제안한분산처리를위한 File System이다. 주요특징으로는 Block 기반저장시스템, Master-Slave 구조, 일반 PC의사용성을꼽을수있다. GFS 의구조 나 ) 특징 i. Block 기반저장시스템 - 일반적인 Disk와동일하게 Block 기반저장시스템을기반으로하고있지만, 많은부분에서일반적인 Disk와다르다. 우선첫번째로, 블록하나하나의크기가 64MB로일반적인 Disk의불록크기보다훨씬크다. 이는하나의 Disk에서데이터를읽어오는방식이아니라여러개의조각을동시에읽어서성능향상을꾀하고있기때문에, 전통적인 Block 기반방식의 Disk와같지만다르다고볼수있다. ii. Master-Slave 구조 - 각각의노드는두개의타입으로나뉘게된다. Master 노드와 Slave 노드인데, 일반적으로하나의 Master 노드와다수의 Slave 노드로구성되게된다. Master 노드는실제데이터를저장하지않고, Slave 노드에저장되어있는데이터의메타데이터를저장하고있다. 메타데이터는테이블형식으로매핑되어있고각블록의 Label과현재사용현황, 복제본의위치등을저장하고있다. Slave 노드의경우실제데이터의블록을저장하고
있으며, 현재자신의상태정보 ( 운영현황, 보유파일상태등 ) 을 Master 노드로전송 (Heartbeat Message) 하게된다. iii. 일반 PC의사용성 - 전통적으로서버는단일메인프레임또는데이터센터에위치하고있는랙타입서버를의미하게된다. 하지만 GFS는이러한전통적인서버의통념에서벗어나다수의일반적인 PC를사용하여분산파일시스템을구현하고있다. iv. 기타사항 - GFS는 File System이라는이름을갖고있지만, 일반적으로 File System이 Kernel과같은 System의내부에서동작하는것과달리각노드의사용자영역에서실행되게된다. 그렇기때문에일반적인 File System과달리크게제약성을갖지않고, 다양한유연성을보유하게된다. C. Hadoop 가 ) 개요 - Apache Software Foundation의분산처리시스템프레임워크로, 최초에는 Lucine 프로젝트의일부인 Nutch에서시작되었다. 2002 년부터시작된 Nutch 프로젝트는웹크롤링과인덱싱에서높은컴퓨팅파워와수많은양의저장소를필요로하게되었고 2003 년발표된 GFS 논문이이와같은문제점을해결하기에적합하다고판단되어프로젝트를시작하게된것이다. 이를기반으로 2004년 NDFS(Nutch Distributed File System) 을구현하게되었고, 이때구글에서는 MapReduce 프레임워크를발표하게되었다. 2005년부터 NDFS와 MapReduce 프레임워크를통합하는과정에이르게되었고, 2006년 NDFS와 MapReduce가 Hadoop이라는이름으로재탄생하게된것이다. 2008년, 결국 Hadoop은 Nutch의서브프로젝트가아닌 Apache Software Foundation의메인프로젝트가되었고 Yahoo, FaceBook, New york times와같은기업에서사용하게되면서이름을알리게되었다. Hadoop 프로젝트는
Hadoop Common, HDFS, MapReduce 와같이세개의서브프로 젝트를갖게되었다. Hadoop Subproject 의구조 나 ) Hadoop의 Sub-project i. Hadoop Common (Core) - HDFS에접근하고, 조작하기위한다양한 API와콘솔명령어및웹인터페이스를지원하고있다. Java 언어로제작되어있으며, 패키지내부에있는소스를수정하여컴파일하면변경이가능한오픈소스기반으로되어있다. ii. HDFS - HDFS는 GFS 논문의실제구현물이기때문에앞서설명한 GFS 의특성과동일한특성을갖는다. 이에더하여서버의 System Fault가발생하게되더라도여러개의데이터복제본을활용하여가용성을높이는내고장성 (fault-tolerant) 을특징으로갖고, 신뢰성을최우선하여시스템을운영하게된다. HDFS 의구조
iii. MapReduce - HDFS에저장되어있는데이터셋을활용하여손쉽게분산처리프로그래밍을할수있게해주는소프트웨어프레임워크이다. iv. Avro - 데이터의효율적인직렬화시스템을지원하고, 언어간의 PRC 및영구적인데이터저장소를위한 System이다. v. Pig - HDFS에서실행되는데이터플로우언어를위한대형파일탐색툴로, 실행환경을제공해준다. vi. HBase - 컬럼기반의분산데이터베이스를지원해주는시스템으로, HDFS를하부저장소로사용하면서배치스타일연산과 MapReduce를동시에지원해준다. vii. ZooKeeper - 분산처리프로그램의기반을제공해준다. viii. Hive - 분산데이터저장소로, HDFS에저장된데이터를관리하고쿼리기반의 SQL 엔진을이용해서데이터를질의할수있다. ix. Chukwa - 분산데이터집합및분석시스템으로, HDFS에저장되어있는데이터에대한수집기를운영하고수집된데이터는 MapRedice 프레임워크의결과물에영향을미친다.
D. MapReduce 가 ) 개요 - MapReduce는 Google에서정보검색을위한데이터가공 ( 색인어추출, 정렬및역인덱스생성등 ) 을목적으로개발된분산환경에서의병렬데이터처리기법이자프로그래밍모델이며, 또한이를지원하는시스템이다. MapReduce는비공유구조 (shared-nothing) 로연결된여러노드 PC들을가지고대량의병렬처리방식 (MPP; Massively Parallel Processing) 으로대용량데이터를처리할수있는방법을제공한다. 이를보다간편하게하기위해 MapReduce는 LISP 프로그래밍언어에서의 map과 reduce 함수의개념을차용하여시스템의분산구조를감추면서범용프로그래밍언어를이용해병렬프로그래밍을가능하게한다. 나 ) 기본동작및구조 i. 기본적인동작이론 Map: (key1, value1) -> (key2, value2) //(key, value) 쌍을읽어다른 (key, value) 쌍에대응 Reduce: (key2, List_of_value2) -> (key3, value3) //key2를기준으로취합된 value list를읽어집계된값 value 3 를출력 - Map 함수는임의키-값쌍을읽어서이를필터링하거나, 다른값으로변환하는작업을수행하고, Reduce 함수는 Map 함수를통해출력된값들을새키 key2를기준으로그룹화 (grouping) 한후여기에집계연산 (aggregation) 을수행한결과를출력한다. 이렇게 MapReduce는이간단한두함수를이용해여러노드들을대상으로데이터를병렬처리할수있는특징을가진다.
ii. 기본적인구조 - 아래그림은 MapReduce의처리흐름을나타낸다. 분석할입력데이터는분산파일시스템인앞서설명한 HDFS 위에먼저적재되고, 이때데이터는기본 64MB 크기의여러데이터청크 (chunk) 들로분할된다. GFS는각기분할된청크들에대해장애로부터의복구를위해 2개의추가적인복사본을생성하며이들을클러스터를구성하는각기다른노드 PC들에위치시킨다. 일반적인 MarReduce Job 의 Data Flow 다 ) 특징 i. map() 과 reduce() - map() 함수는임의의 <key, value> 셋을입력으로받아서필터링하거나변환을거쳐서출력으로새로운 <key, value > 셋을출력하여로컬노드에저장한다. reduce() 는 map() 함수가수행한결과물인 <key, value > 셋을입력으로받아그룹화하고정렬등의작업을거치게되고, 전체작업은기본적인 DBMS의 group-by-aggregation과유사하지만, 손쉽게여러노드들을대상으로데이터를병렬처리할수있는특징을갖는다.
ii. 다양한형태의 MapReduce Job - 이와같이 MapReduce Job은다수의 map 함수와다수의 reduce 함수로구성되게되는데, 이구성이반드시절대적인것은아니다. 기본적으로 map 함수는다양하게분산될수있는데, reduce 함수의경우아래와같이존재하지않거나단일처리또는다중처리로진행될수있다. 실제로 reduce 함수의배치에따라성능이많이달라진다. Reduce Task 가없는 Job 의 Data Flow 단일 Reduce Task
다중 Reduce Task iii. MapReduce의작동방법 - MapReduce는 map task와 reduce task를하나의 job으로처리하고해당 job을처리하기위해서 job을제출하고지속적으로진행과정을조사하여진행사항또는에러내용을콘솔에출력한다. MapReduce Job 진행과정
iv. MapReduce의장점 - MapReduce는먼저 Map(), Reduce() 라는두개의함수를구현함으로써병렬처리를가능하게한다는것이큰장점이다. 데이터의분산배치와실행은스케쥴러가담당함으로써사용자는분산시스템의물리적구조를알지않아도데이터병렬화 (data parallelism) 방식을통한분산처리를매우쉽게할수있는이점이있다. 두번째로 MapReduce는특정화된데이터모델이나스키마정의, 질의언어에의존적이지않다. 사용자는범용의프로그래밍언어를이용하여데이터를어떻게처리할지기술한다. 따라서관계형데이터모델로는표현되기어려운다르거나, 비정형적인데이터모델들도지원할수있는유연성을갖는다. 세번째로 MapReduce는병렬데이터처리를위한시스템으로하부저장구조와독립적이다. 기본적으로는 MapReduce는 GFS 와같은분산파일시스템상의파일을입출력으로하지만, 그외일반파일시스템이나 DBMS 등다른저장구조를하부에두는것도가능하다. 네번째로 MapReduce는분산파일시스템의데이터복제 (replication) 에기반한데이터의내구성 (durability) 지원과함께 Mapper나 Reducer의태스크장애시각태스크의재수행을통해장애로부터의내고장성을확보한다. 이때 Map과 Reduce 작업이처음부터다시실행되는것을막기위해 Map의결과는 Mapper가수행된노드의로컬디스크에기록된다. 마지막으로 MapReduce의오픈소스구현인 Hadoop은 4,000 노드이상으로확장될수있을정도로높은확장성을가진다. 처리해야할데이터크기가커지면그만큼높은작업처리량 (throughput) 을가지도록시스템을개선해야한다. 기존의방식은 HW 성능의개선을통해처리량을향상시키는 scale-up 방식이었던반면에, MapReduce는저가의범용 PC들을추가로할당함으로써확장성을지원하는 scale-out 방식의구현을용이하게한다.
v. MapReduce의단점 - 첫번째로 Map과 Reduce만을정의하도록한 MapReduce는단순한인터페이스를제공함에반해, 복잡한알고리즘이나 selection-then-group-by-aggregation 작업이아닌알고리즘에서는효율적이지않다. 대표적인것이 Join과같은이항연산자 (binary operator) 의지원이나 Loop의지원이다. MapReduce에서는이항연산자를지원하지않았다. 때문에 Join은하나의 MapReduce 작업으로표현되지못하고여러개의 MapReduce 작업을직렬로연결해표현해야만했다. Loop의경우도매반복때마다계속입력을반복해서읽어야하는등의 I/O 낭비가심하였다. 즉, MapReduce에서는 DAG(Directed Acyclic Graph) 형태로자신의워크플로우를따로정의하는작업은불가능하며, 복잡한알고리즘의구현을위해서는여러번의 MapReduce 작업을수행해야하는불편함과그에따른성능저하가많다. 두번째로 MapReduce는병렬처리에대한두인터페이스를제공하는것이외에기존의 DBMS가제공하는스키마나질의언어, 인덱스등을제공하지못한다. 스키마는데이터의무결성 (integrity) 를지원하는데있어서중요한데, 이의미비는결국프로그램로직상에서무결성을검증하도록하게한다. 이런경우프로그램도복잡해지려니와하부데이터형식의변경은프로그램로직의변경을야기하고, 매번데이터를읽을때마다파싱을수행해야하는부담도갖는다. SQL과같은질의언어의미지원도또한질의형식의재활용이나손쉬운질의의작성을어렵게한다. 인덱스는질의처리성능의향상을위해중요하지만 MapReduce는인덱스를지원하지않으며, 데이터의일괄처리만을제공한다. 때문에 DeWitt과 Stonebraker등은 MapReduce 를단순한 LTE(Load-Transform-Extract) 도구로만처음에언급하였다. 세번째로 MapReduce는기본적으로런타임스케쥴링에기반한다. Hadoop의예에서, 런타임스케쥴링에서는태스크를수행하는경우는실패한태스크를재수행하거나또는아직수
행되지않은태스크를수행하는경우또는태스크가매우느린경우이다. 특히세번째의경우는임계값을설정해두고일정시간동안에임계값을도달하지못하는경우 straggler로판정하고이를다시수행시키는데, 노드 PC 성능이상이한경우이과정이효과적이지못하다. 더불어한클러스터에서여러 MapReduce 작업을동시에수행하는경우에대해서효과적인다중-작업스케쥴링을제공하지못한다. 마지막으로 MapReduce는 DBMS와비교해상대적으로낮은성능을보인다. 이러한시스템에서의성능측정은대개단위시간당작업처리량 (throughput) 이나시스템의효율성 (efficiency) 등으로측정할수있다. DBMS의경우테이블에의적재이외에인덱스생성시간등이소요되어더많은시간이소요되었다. MapReduce의이러한낮은성능은내고장성지원을위해디스크 I/O를희생하는태생적인이유에근거한다. 우선파일을보관하는분산파일시스템은 2개의 replica를추가로가짐에따라디스크공간과 I/O 를소비한다. 복제된이후읽기연산은각기다른복사본에접근함으로써병렬화를꾀할수는있지만, 대신에출력의경우는한데이터를가지고여러노드에분산, 기록해야한다. 또한각태스크는수행결과를다음태스크에전달하기이전에태스크를수행한노드의로컬디스크또는분산파일시스템상에기록하는과정을먼저수행한다. 이러한추가적인 I/O는 DBMS에서는존재하지않던것이었다.
II. 기술동향및사례조사 A. 개요 - Apache Hadoop, Qizmt, Disco, Greenplum등의구현사례가있으며 Apache Hadoop은대표적오픈소스구현사례로현재아마존은 MapReduce 를이용한아마존웹서비스를제공. MapReduce 프로그래밍은기가스페이스의익스트림어플리케이션플랫폼이나, 그리드게임의클라우드개발플랫폼, IBM 웹스피어익스트림스케일, 오라클코히런스등이있다. B. Hadoop / MapReduce 응용사례가 ) 텍스트검색 - 대표적인예로야후의검색엔진이 Hadoop으로구성되어있다. 이외에도 Hadoop을이용해서검색을위한수집도구인웹크롤러와파싱, 인덱싱등검색엔진의모든부분에 Hadoop을적용하여운영하고있는사례가많이있다. 가장간단한예제로, 데이터수집을위한데이터크롤러를분산처리하도록구성한시스템을소개하겠다. Hadoop 을이용한웹크롤러구현 - 각각의크롤러는개별적으로동작을진행하되, map 함수에서새 로운 URL 을저장하고파싱을통해링크들을추출하여출력하게 된다. reduce 함수에서는 map 함수에서추출된 URL 을기반으로
하여이전에저장되어있는 URL 과비교하여새로운 URL 을추출 하고, 저장하는방식으로운영되고있다. 나 ) 이미지검색 - 이미지인덱싱과검색부분에 Hadoop을활용해분산처리를진행하고있다. HDFS에저장된이미지파일을 <key, vaule> 형식으로인덱싱하여인덱스파일에저장하고, 사용자가업로드한이미지파일을인덱싱된형태로변환하여각노드에서해당이미지와유사한이미지가있는지검색하는형식을취하고있다. 이미지인덱싱 이미지서칭
다 ) FaceBook의이용사례 - 사용자의급증에따라 FaceBook의로그데이터와사용자데이터는급증하였고, 이를위해확장이용이하면서성능까지만족시킬수있는데이터처리플랫폼이반드시필요한상황이었다. 초기에는오라클을기반으로시스템을구축하였지만, 확장성과성능면에서다양한문제에봉착한다음하둡을적용하게된것이다. 이는크게네부분에서적용한것으로볼수있는데첫번째로매시간마다많은양의데이터에대한요약본을생성해야하는부분에적용하였다. 이는통계를위해서반드시필요한부분이기때문이다. 두번째로사용자의히스토리데이터에대한잡수행이다. 이는새로운상품을준비하고런칭하는데에사용하기위한데이터를생성해내기때문이다. 세번째로방대한로그데이터를장시간보관하기위한저장소에적용하였고, 마지막으로저장된로그이벤트를관찰하여사용자들을스팸으로부터보호하기위함으로사용되었다. 적용된구조는아래의그림에서간단하게볼수있다. FaceBook 의데이터웨어하우스관리구조
3. 프로젝트세부사항 I. 개발내용 A. MapReduce 프레임워크를이용한 Data 노드설정및대용량처리를위한 Framework 구축 B. 데이터검색을위한검색엔진 C. Data Set의수집을위한 Web Robot - 기존의 Data Set 활용이가능한경우기존자원활용 D. 검색인터페이스를위한 Web Interface II. 동작과정 A. 사용자의 Web Interface 접속및검색쿼리질의 B. 검색쿼리를받은 Web Interface는검색엔진을이용해서 Cloud 내부의데이터들을검색 C. 검색엔진은검색을위한 Data Set을참조하여 Cloud 내부의데이터를참조하고검색하여결과값을 Web Interface에반환 D. Web Interface는반환된정보를기반으로사용자에게질의결과를출력
III. 개발환경 A. 하드웨어가 ) Server 노드 : Desktop 또는 1U 서버컴퓨터 3대이상 - 하드웨어자원부족시노드확장을위해가상머신활용예정 B. 운영체제가 ) Server 노드 : Linux Kernel 2.6 나 ) Client : 웹브라우저가설치된모든운영체제 C. 개발언어가 ) Framework : JAVA 나 ) Web Interface : HTML, PHP
4. 진행사항 I. 개발환경설정 A. 공통사항 ( 설치된 Software) O/S Frdora 14 (Kernel 2.6.35.6) JAVA SDK 1.6.0-20 HADOOP 0.20.203.0 (Latest stable version) B. 하드웨어 노드 1 : Master 노드 / MapReduce Develop Machine CPU Intel Core2Duo E6750 (@ 2.66Ghz) RAM 2GB VGA NVIDIA 8600GT NIC Intel 82566DC-2 (Gigabit, onboard) HDD WDC WD2500KS-00M (250GB) 노드 2 : Slave 노드 (Data 노드 ) CPU Intel Core2Quad Q8200 (@ 2.33GHz) RAM 3GB VGA NVIDIA 9600GT NIC Realtek RTL8111/8168 (Gigabit, onboard) HDD WDC WD3200AAKS-0 (320GB) II. 설치및환경설정현황 A. Hadoop 설치 가 ) 설치는압축된파일을해제하여복사한뒤 $HADOOP_HOME/ conf/ 디렉터리의파일을통해설정하면설치가완료됨. 나 ) 현재완전분산설정을진행해놓은상태
B. 환경설정가 ) 주요환경설정 : Hadoop의실행환경설정 - 시스템의경로설정과별도로 JAVA SDK가설치된경로를명시해야함. 나 ) 환경설정 1 : namenode 설정 다 ) 환경설정 2 : HDFS( 분산파일시스템 ) 설정
라 ) 환경설정 3 : mapreduce 분산처리설정 마 ) 주노드 (namenode) / 보조노드 (datanode) 설정 바 ) 설정완료후실행 사 ) 실행확인 : 노드 1 노드 1 노드 2
III. 클러스터운영현황 A. 콘솔명령어를이용한운영 가 ) 콘솔명령을통한파일저장 ( 약 697MB) - HDFS 에디렉터리를생성하고, 로컬의파일을복사한다음정상적 으로복사되었는지확인한결과 B. 웹인터페이스를이용한운영 가 ) 파일시스템확인 나 ) 분산된파일블록현황 - 기본청크사이즈는 64MB 로, 대략 11 개의블록으로나누어진것 을확인할수있다. ([697 64 = 10.8] 이므로, 11 개의블록으로 저장됨 )
IV. MapReduce 프레임워크개발환경구축 A. 의사분산시스템환경기반의개발환경가 ) 개발도구 : Eclipse INDIGO 나 ) 상기기본분산환경과동일한환경을구축하고, 프로그래밍테스트를위해의사분산환경으로프로그래밍및테스트환경을구축하였다. 개발환경구축모습 Eclipse Plugin 을통해지원해주는 MapReduce Perspective
개발된내용을개발 PC 의 Hadoop 환경에서실행할수있게설정 실행결과가 Console 창에출력됨 결과파일을웹인터페이스를통해확인
5. 앞으로의진행사항및추가사항 I. 앞으로의진행사항 A. 웹인터페이스제작가 ) 미디어파일의검색을위한웹인터페이스 i. 요구사항 - 검색대상은미디어파일이지만질의방법에대한고려가필요함. - 사용자의질의가텍스트로이루어질것인지또는검색대상과동일한미디어 ( 이미지, 음악파일등 ) 가될수있음. ii. 추가요구사항 - 사용자의질의편의성을제공해야한다. - 추가적인작업을편리하게진행할수있도록사용자기반의인터페이스가되어야함. B. 검색데이터셋구축및인덱싱작업가 ) 미디어파일의데이터셋구축 i. 요구사항 - 음악또는이미지등의미디어파일에적합한데이터셋을구축해야함. - 데이터셋구축후인덱싱작업을통해서 MapReduce 에적합한인덱스를생성해야함. ii. 추가요구사항 - MapReduce 분산프레임워크를최대한활용할수있는데이터셋과인덱싱을구축해야함. - 이미지검색사례와동일하게인덱싱과검색에서 MapReduce 프레임워크가적용될수있도록구축해야함.
II. 추가고려사항 A. 노드설정에따른성능고려가 ) 성능고려의필요성 i. 노드간의거리 - Hadoop은현재데이터를저장하는노드와내고장성과연관된복제본을저장하는노드를선택해야하는데, 이때반드시노드간의거리를고려해야네트워크대역폭에의한성능손실없이운영이가능하다 Hadoop 의노드간거리계산방법 - 기본적으로사용자가접속해있는노드를로컬노드라고했을때, 자신이위치하지않은다른랙의노드에복제본을생성하고복제본이생성된랙에위치한또다른노드에추가적인복제본을저장하게된다. - 별도의설정을진행하지않으면모든노드가동일한랙내부에존재하는것으로인식하기때문에, 반드시노드의위치설정을진행해야만정상적인성능을낼수있으리라판단된다.
B. 추가데이터노드에대한고려가 ) 실제컴퓨터를기반으로한데이터노드 i. 장점 - 독립된하드웨어의성능을최대한사용할수있음. - 분산파일시스템을추가지더욱크게활용할수있음. ii. 단점 - 하드웨어비용및공간이제한됨. - 인터넷환경에연결됨에따라해킹등의위험에노출될수있음. 나 ) 가상컴퓨터를기반으로한데이터노드 i. 장점 - 유휴자원의활용이가능함. - 비용및공간의제한이없음. ii. 단점 - 단일하드웨어에서제공하는한정된자원으로인해분산파일시스템의용량이제한될수있음. - 가상화된네트워크로인해외부에서접근이불가능할수있음. 이는네트워크기반으로운영되는해당시스템에서치명적일수있기때문에반드시고려되어야함.
6. 참고문헌 I. 서적 A. Hadoop: The Definitive Guide / Tom White / O REILLY B. ETRI 클라우드컴퓨팅기술동향전자통신동향분석제 24권제4호 2009년8월 II. 국내및국외논문 A. 하둡기반 P2P 분산웹크롤러설계 / 강문수 (Mun Su Kang), 최영식 (Young Sik Choi) / 한국인터넷정보학회, 한국인터넷정보학회 2010 년도학술발표대회 2010.6, page(s): 199-202 B. NIR: Content based image retrieval on cloud computing / Zhuo Yang; Kamata, S.; Ahrary, A.; / Intelligent Computing and Intelligent Systems, 2009. ICIS 2009. IEEE International Conference on Volume: 3 / Digital Object Identifier: 10.1109/ICICISYS.2009.5358101 Publication Year: 2009, Page(s): 556-559 Cited by: 1 III. 인터넷웹사이트 A. http://www.itworld.co.kr/news/60589 B. 네이버지식사전 C. 위키디피아 D. http://gamsungit.com/50109974250 F. http://bart7449.tistory.com/276 G. Apache Software Foundation Hadoop Project Homepage / http://hadoop.apache.org