Cover Story 04 빅데이터플랫폼 Big Data 시대의엔터프라이즈인프라스트럭처 저자 - 홍기현상무, 한국오라클 Tech Sales Consultant(kihyun.hong@oracle.com) 빅데이터기술은데이터크기혹은증가속도가빠르고데이터저장형태도다양하여이를 모델링후분석하기에는부적합한형태의데이터를분산시스템을이용하여분석하는기술이다. 또한빅데이터로는트위터나페이스북같은소셜미디어에올라온데이터가언급되기도하지만, 사실기업내에서도센서데이터나웹로그같은빅데이터는존재하여왔다. 다만이를기존의기술과 인프라에서처리하기에는그비용이많이들어그일부만을선별하여처리하고있었을뿐이다. 이러한데이터를처리하는것에대해서는 Google 이 2003 년에 Google File System(GFS) 와 2004 년에 Map 에대한논문을발표한이후빅데이터를저가의하드웨어를이용하여빠르게처리할수 있는기술이알려지면서현재는많은기업들이관심을가지기시작하였다. 본기고에서는빅데이터를처리하기위한기술에대하여간략히짚어보고, 엔터프라이즈환경에서 빅데이터처리를위해고려되어야할기술적인요소와, Oracle 빅데이터솔루션에대해 알아보고자한다. Cover Story 빅데이터플랫폼 Big Data 시대의엔터프라이즈인프라스트럭처 ORACLE KOREA MAGAZINE Spring 2012 045
Cover Story 빅데이터플랫폼 Big Data 시대의엔터프라이즈인프라스트럭처 ORACLE KOREA MAGAZINE Spring 2012 046 개요빅데이터를처리하는기술의가장중심기술은아파치하둡기술일것이다. 하둡기술은데이터를취득하고이를구조화시키고분석을하는일련의과정에대한분산저장및처리기술을담고있다. 우선데이터를취득하여저장할때는저가의장비에저장하는데이때장애를대비하여 3중화를기본으로한 Hadoop Distributed File System(HDFS) 라는파일시스템을구성한다. 이때파일과디스크에대한메타정보를 Name 노드에서관리하고실데이터는 Data Node에서분산시켜저장한다. 각노드간의데이터이동을최소화하기위해서각데이터에대한처리는가능한각각의로컬노드에서수행한다. 이를위해서는분산처리를위한 Map 기술을사용한다. Map는개발자들이저수준의인프라구조의이해를바탕으로네트워크프로그램을작성해야하는번거로움을없애고실제처리하여야하는업무에대한로직을구현할수있도록도와준다. 프로그램은다양한언어를이용하여개발할수있으나실제는 Java 언어를이용하여개발되어진다. 이렇게개발된프로그램은각노드로배포되어수행되어지는데이를 job이라고하고이 job을관리하기위한 JobTracker와실제일을수행하는 TaskTracker 들로이루어진다. 또한분산처리시일어날수있는일부작업의실패에대해안전하게처리하기위한 ZooKeeper 가존재한다. Map를이용한하둡의아키텍쳐는개발자로하여금분산처리환경에서업무위주로개발을할수있도록해주었지만일련의작업을일일이코딩한다는것은힘든일이다. 이를위해개발프레임워크로 MapReduece작업을추상화시킨 Pig나 SQL Syntax를이용한 Query 언어를이용하는 Hive를사용하여생산성을높일수있다. 빅데이터처리의완벽한플렛폼으로서의 Oracle Big Data Appliance 빅데이터처리시스템은흔히 x86으로구성된하드웨어에아파치하둡 (Hadoop) 과이를보완하기위한서브프로젝트의프로그램을설치하여구성한다. 그렇지만, 이들서브프로젝트는각각고유의특성이있어때로는기능이중복되기도하고때로는상호연동이불완전할때가있어각특성별로이해하여취사선택하 여효율적으로시스템을구성하는데에는많은경험과기술이축적되어있어야한다. 또한오류가발생할경우오픈소스이다보니자체적으로해결하거나다른사람이해결할때까지기다리는수밖에없는것이현실이다. 그러므로이를자체적으로구성하여유지보수하는것은이러한기술을바탕으로본업을하는일부회사를제외하고는한계가있다고할수있다. 이러한인프라구성및유지보수에대한해결책이바로 Oracle Big Data Appliance이다오라클 Big Data Appliance는빅데이터프로그램을구동하기위한하드웨어와소프트웨어를최적의상태로구성한상태로고객에게전달함으로서, 고객이빅데이터프로젝트를즉시수행할수있도록하는것을그목표로한다. 또한오류및장애발생시이에대한지원을수행한다. Oracle Big Data Appliance는 Full rack 1대기준으로 864 GB의메인메모리와 648TB의스토리지로구성되어있다. 주요하드웨어구성은다음과같다. 18대의노드로구성, 각노드의서버구성은다음과같다 2 CPUs (6-core Intel Processors) 48 GB의메인메모리 (96 GB 또는 144GB 로업그레이드가능 ) 12 X 3TB 디스크 인피니밴드네트워킹 10 Gb 이더넷연결 Oracle Big Data Appliance는오픈소스를조합하여구성된시스템소프트웨어와오라클에서개발한 Big Data Connectors를포함한다. 주요구성은다음과같다. Cloudera CDH(Cloudera s Distribution Including Apache Hadoop) - Hadoop Core - HDFS - Hive - HBase - Zookeeper - Oozie - Mahout - Sqoop - Cloudera Manager Oracle Linux 5.6
Java HotSpot Virtual Machine Open Source R Distribution Oracle NoSQL Database CE Oracle Big Data Connectors 오라클은클라우데라와파트너쉽을맺고 Oracle Big Data Appliance 에클라우데라의아파치하둡배포 판 CDH(Cloudera s Distribution Including Apache Hadoop) 과클라우데라매니저 (Cloudera manager) 솔 루션을포함하여구성하였다. 이 CDH 는기업환경에서 적용가능한아파치하둡의 100% 오픈소스배포판으 로안정성과확장성측면에서뛰어난평가를받고있다. Oracle Big Data Appliance 는이러한클라우데라의하 둡배포판에오라클리눅스, 오라클 Java Hotspot VM, Open Source R Distribution, Oracle NoSQL Database 및 Oracle Big Data Connectors 를설치하여철저한테스 트와검증을통해최적의환경으로구성한시스템이다. Cloudera CDH 클라우데라의아파치하둡배포판 CDH(Cloudera s Distribution Including Apache Hadoop) 는안정된하둡 의버전에중요오류를수정하여패키지화한것으로쉽 게설치할수있다. Apache Hadoop 은데이터의저장과처리를위한플렛폼이다 Scalable Fault tolerant Open source < 그림 1> 하둡의특징및구성요소 Cloudera Manager 하둡크러스터의성능향상, 서비스의품질향상, 관리비 용절감등을위해하둡클러스터의모든부분에제어를 하도록도와주는 End-to-End 관리툴이다. Open Source R Distribution 주요하둡 (HADOOP) 구성요소 Hadoop Distributed File System (HDFS) 파일공유및서버들에분산되어저장된데이터의보호 Map 물리적으로여러개로분리된서버를이용한분산처리 R 은통계분석 / 그래픽을제공하는프로그래밍언어로 2000 년후반부터대형포탈업체에서초대형데이터분 석에사용되고있음이알려지면서폭발적으로도입이늘 어나는오픈소스기반의통계를목적으로한언어이며 R의배포판은그개발환경을말한다. Oracle NoSQL Database 아주많은양의정보 ( 데이터 ) 를수집하여저장하려면빠른처리속도와데이터증가에따른확장이용이해야하고부분적인장애상황에서도서비스를지속할수있어야한다. NoSQL은 Non-SQL 또는 Not-only-SQL를줄임말로데이터를저장할때 key-values와같은간단한구조로저장을하고데이터를저장이나읽을때 SQL을사용하지않는다. SQL없이데이터를관리한다는것을기존 DBMS를사용하는사용자는이상하겠지만 NoSQL이테이블간의조인을허용하지않는다는것을안다면쉽게이해할수있을것이다, 왜냐하면 SQL은여러테이블을조인할때최적의경로를선택하는역할을하는데 NoSQL은한테이블에대해데이터를넣거나질의함으로굳이 SQL을사용할필요없이 API를이용하면되는것이다. 오라클 NoSQL 데이터베이스는키- 밸류데이터모델 (Key-value Data Model) 을사용해데이터를단순하고유연한포맷으로저장함으로서웹로그, 센서, 스마트미터데이터, 소셜네트워크에서생산된데이터같은동적스키마구조를가진대용량데이터를효과적으로저장관리할수있게해준다. 또한 NoSQL DB는개발자스스로가일관성을조절할수있는옵션을제공해비즈니스별특성에맞는개발요구사항을충족시켜줄수있다. 기존인프라스트럭쳐로의연결을위한 Oracle Big Data Connectors 하둡에데이터를저장하고이를 Map를이용해분석하려고하면이를 Java와같은프로그래밍언어로개발해야하는데, 이경우개발에필요한인력및시간이많이필요할뿐만아니라분석가들이프로그램언어를배워야한다. 현재대부분의분석가는 R언어나 SQL을구사할수있고많은분석툴은 SQL을기반으로구성되어있다. 그러므로어느정도구조화된데이터의분석은하둡시스템에서수행하는것보다는기존오라클과같은데이터베이스와연동하여처리하는것이더효율적일것이다. Cover Story 빅데이터플랫폼 Big Data 시대의엔터프라이즈인프라스트럭처 ORACLE KOREA MAGAZINE Spring 2012 047
Cover Story 빅데이터플랫폼 Big Data 시대의엔터프라이즈인프라스트럭처 ORACLE KOREA MAGAZINE Spring 2012 048 Oracle Big Data Connectors 는하둡에서생성된데이터 에접근하기위한다양한방법을제공하며다음과같은 구성요소를가진다. Oracle Loader for Hadoop Oracle Direct Connector for Hadoop Distributed File System (HDFS) Oracle Data Integrator Application Adapter for Hadoop Oracle R Connector for Hadoop Oracle Loader for Hadoop 하둡의데이터를오라클데이터베이스로의적재를위 해최적화된 Map 유틸리티로이전단계에서생 성된 Delimiter 로구분된 Text 나 Hive 상의테이블들 을 Input 데이터로하여데이터를읽은후 Map 를이용하여오라클데이터베이스로적재시킬수있다. Map 작업이시작되면오라클데이터베이스로접 속하여테이블의구조에대한정보를얻은후각각의테 이블과대응되는파티션단위로 작업을완료한 다. 이때정렬도함께수행하며데이터의형변환이필요 한경우하둡시스템의리소스를활용하여미리형변환 을완료한후적재작업으로들어간다. Map 작업 시오라클에직접적재하는 Online 방식과적재가능한 형태로파일을생성해놓는 Offline 방식을지원하며파일 로저장시 pump 포맷의파일로도저장가능하다. Oracle Loader for Hadoop (Online Option) Oracle Loader for Hadoop 의기능은 Oracle Big Data Appliance 상에서만수행되는것이아니라일반하둡으 로구성된시스템에서도오라클과연동하고싶다면설 치하여구동할수있다. < 그림 2> Oracle Loader For Hadoop(Online vs Offline) Oracle Loader for Hadoop (Online Option) Oracle Direct Connector for Hadoop Distributed File System (HDFS) HDFS 상의파일을오라클데이터베이스로의 External table 을이용하여직접읽는방식이다. 이방식은하둡시 스템에서생성된결과를업무상데이터베이스로적재할 필요가없거나데이터베이스내에공간이없을경우에 사용되며필요한데이터만선별하여적재할수있다. 데 이터는 SQL 을이용해질의할수있어오라클내의다른 테이블과조인도가능하다. HDFS < 그림 3> Oracle Direct Connector for HDFS Oracle Data Integrator Application Adapter for Hadoop 하둡클러스터로부터오라클데이터베이스로데이 터를추출, 변경, 적재를수행한다. 이에대한정의는 GUI(Graphical User Interface) 를이용한다. Oracle R Connector for Hadoop 로컬의 R 환경에오라클데이터베이스, 하둡간에인터 페이스를제공함으로이들세가지플렛폼상의데이터를 이용하여분석할수있다. 이를이용하면 R 사용자는하 둡상의데이터를이용하기위해하둡환경이나새로운 프로그램언어를배울필요없이 R 언어를이용해분석 할수있다. 빅데이터분석을지원하는 Oracle Advanced Analytics Oracle Advanced Analytics 는오라클데이터베이스옵 션으로통계나데이터마이닝에필요한기능을제공하며 Oracle R Enterprise 와 Oracle Data mining 으로구성되 어있다. ODCH SQL Query External Table
Oracle R Enterprise 오픈소스인 R의환경과언어를오라클데이터베이스 11g에통합함으로서분석가나통계학자들이기존의 R 로작성된어플리케이션을재사용가능하다. 오픈소스 R이데스크탑에서수행됨으로써존재하였던메모리크기한계나 CPU의처리능력의한계도분석작업을오라클이설치된엔터프라이즈서버에서수행하게함으로서극복되었다. 뿐만아니라데이터가있는서버에서직접수행함으로불필요하게데이터를전송할필요가없고오라클의병렬처리기능을이용할수있게되어빠른성능으로데이터를처리할수있게되었다. R workspace 컨솔 Function push-down- 데이터변환및통계작업 < 그림 4> Oracle R Enterprise Oracle statistics engine OBIEE, Web Services 익숙한 R 언어를사용대용량데이터처리운영시스템에통합 Oracle Data Mining (ODM) Oracle Data Mining(ODM) 을이용하면예측분석이나통찰력이필요한차세대응용프로그램을편리하게개발이가능하다. 응용프로그램개발자는오라클데이터베이스내데이터들에대해자동적으로발굴하는 ODM의 SQL API를이용할수있고이과정에서사용되는데이터나모델및결과를오라클데이터베이스내부에서저장함으로서불필요하게데이터를이동시키거나중요데이터가유출되는보안상의문제를방지할수있다. 데이터분석가는 Oracle Data Miner 11g Release 2의그래픽사용자인터페이스를이용하여데이터의패턴이나관계및숨겨진내용에대한통찰을할수있다. Oracle R Distribution Oracle R Distribution은오픈소스 R의배포판에 x86 하드웨어상에서고성능의수치계산을위한인텔의 MKL라이브러리를확장한것이다. 오라클은 R 소프트웨어를지지하고있고오픈소스 R에기업수준의지원을제공할계획이다. 데이터관리를위한 Oracle Engineered System 제품군빅데이터라는신개념과이에수반되는 technology에접하게되면마치모든데이터처리를이새로운개념의시스템이대체하여처리하는것으로생각하는오류를범하게된다. 그렇지만빅데이터시스템은기존의인프라를대체하는것이아니라기존시스템으로저장및처리가힘들었던데이터를처리하여의미있는데이터를추출하는시스템으로기존인프라에추가되는것이다. 이를그림으로나타내면 < 그림 5> 와같이인프라영역의앞단에빅데이터처리시스템이추가되어빅데이터의취득 / 저장, 구조화및분석하는일련의과정을수행하게된다. 정제된데이터는빅데이터시스템에서분석되거나기존의데이터웨어하우징시스템에적재되어분석시스템을이용하여분석할수있다. Oracle Exa Oracle Exa는스토리지, 서버, DBMS를통합하여최적화함으로서 DW와 OLTP 업무구분없이통합가능한데이터베이스전용시스템이다. 대규모병렬아키텍처를사용해데이터베이스서버와스토리지간의데이터대역폭을높였고지능형스토리지소프트웨어를이용하여오라클의질의의일부를스토리지노드에서수행하여유효한데이터만을접근하며한번읽은정보는최대한캐쉬함으로서처리속도를획기적으로향상시킬수있는엔지니어된시스템이다. 이밖에선형확장성과미션크리티컬한안정성을제공할수있다. Oracle Exalytics 엑사리틱스는비즈니스인텔리전스 (BI) 어플라이언스로디스크없이메모리에서데이터를분석하는인메모리기 < 그림 5> 빅데이터의취득및분석을위한시스템들 Cover Story 빅데이터플랫폼 Big Data 시대의엔터프라이즈인프라스트럭처 ORACLE KOREA MAGAZINE Spring 2012 049
Cover Story 빅데이터플랫폼 Big Data 시대의엔터프라이즈인프라스트럭처 ORACLE KOREA MAGAZINE Spring 2012 050 술이적용된제품이다. 여기에시각화기능및성능최적화를제공하는오라클의 BI 파운데이션과분석성능이확장된타임스텐인메모리데이터베이스최적화버전, 에스베이스 (ESSBASE) 등의소프트웨어로구성돼있다오라클엔지니어드시스템인 Big Data Appliance, Oracle Exa, Oracle Exalytics를연결한다면고속의인피니밴드네트워크를이용해데이터를이동시킴으로써각시스템간의데이터전송으로인한지연현상을최소화시킬수있을뿐만아니라각각최고의성능을발휘할수있도록설정된엔지니어시스템에서작업을수행함으로중요데이터를적시에볼수있도록할수있다. 빅데이터처리를통한비즈니스가치창출빅데이터는단순히새로운영역의데이터를의미하는것뿐만아니라기존에처리못했던데이터를포함하며처리된결과는새로운데이터의소스로사용된다. 이새로운소스의데이터와기존인프라에서처리하는데이터를통합함으로써보다정교한가치를찾을수있고분석시스템과의연동시킴으로써그진정한효용성을가시화할수있다. 이를 Oracle Big Data Appliance, Exa, Exalytics와같은엔지니어드시스템을인프라스트럭처로구성한다면소프트웨어와하드웨어가최적화된상태로구성된안정적인플랫폼에서데이터를처리할수있을뿐만아니라외부침입으로부터중요데이터를보호할수있게되는것이다. Oracle Big Data Appliance가제공하는준비되고검증된인프라스트럭처기반위에빅데이터처리시스템을구축하여동종업계경쟁사보다먼저안정적으로시스템을구축하고이를바탕으로데이터에숨겨진가치를찾아활용함으로서경영이익을극대화시키기를바란다.