116
BigData의 개요 Hadoop 이용 Streaming with Node.js VERSION 1.0 Release Date : 2013.5 오픈소스 실습 BigData 소개 고강태 010-8269-3535 [email protected] @gtko http://goo.gl/9V3H6 http://www.facebook.com/gangtai.goh

BigData, Hadoop과 Node.js

  • Upload
    -

  • View
    2.314

  • Download
    4

Embed Size (px)

DESCRIPTION

숭실대학교 미디어학부 오픈소스 소프트웨어 실습 4차 강의로, Bigdata에 대한 이해를 해보고, 필요한 구성요소와 Hadoop에 대해 소개합니다. 그리고 2,3차에 진행한 node.js와 연계할 수 있는 기본적인 실습을 포함하고 있습니다.

Citation preview

Page 1: BigData, Hadoop과 Node.js

• ����������� ������������������  BigData의����������� ������������������  개요����������� ������������������  • ����������� ������������������  Hadoop����������� ������������������  이용����������� ������������������  • ����������� ������������������  Streaming����������� ������������������  with����������� ������������������  Node.js����������� ������������������  

• ����������� ������������������  VERSION����������� ������������������  1.0����������� ������������������  • ����������� ������������������  Release����������� ������������������  Date����������� ������������������  :����������� ������������������  2013.5����������� ������������������  

오픈소스����������� ������������������  실습����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  BigData����������� ������������������  소개����������� ������������������  

고����������� ������������������  강����������� ������������������  태����������� ������������������  

010-8269-3535����������� ������������������  

����������� ������������������  [email protected]

@gtko

http://goo.gl/9V3H6

http://www.facebook.com/gangtai.goh

Page 2: BigData, Hadoop과 Node.js

오픈소스����������� ������������������  실습����������� ������������������  강의����������� ������������������  

•  자료의����������� ������������������  출처는����������� ������������������  슬라이드����������� ������������������  하단에����������� ������������������  표기했습니다.����������� ������������������  

•  2013년����������� ������������������  숭실대학교����������� ������������������  미디어����������� ������������������  학부의����������� ������������������  오픈소스����������� ������������������  소프트웨어����������� ������������������  실습과정의����������� ������������������  일환으로����������� ������������������  제작되었습니다.����������� ������������������  

Page 3: BigData, Hadoop과 Node.js

• 3

목차����������� ������������������  

1. ����������� ������������������  Big����������� ������������������  Data����������� ������������������  개요����������� ������������������  

2. ����������� ������������������  BigData����������� ������������������  분석����������� ������������������  

3. ����������� ������������������  Big����������� ������������������  Data����������� ������������������  활용사례����������� ������������������  

4. ����������� ������������������  Hadoop����������� ������������������  

Page 4: BigData, Hadoop과 Node.js

• 4

1.����������� ������������������  Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

01.����������� ������������������  BigData?����������� ������������������  

02.����������� ������������������  BigData����������� ������������������  기술요소����������� ������������������  

03.����������� ������������������  BigData����������� ������������������  처리����������� ������������������  기법����������� ������������������  ����������� ������������������  

Page 5: BigData, Hadoop과 Node.js

1.����������� ������������������  Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  ����������� ������������������  01.����������� ������������������  Big����������� ������������������  Data란?����������� ������������������  

Page 6: BigData, Hadoop과 Node.js

• 6

Big����������� ������������������  Data란?����������� ������������������  

기존����������� ������������������  데이터에����������� ������������������  비해����������� ������������������  너무����������� ������������������  커서����������� ������������������  기존����������� ������������������  방법,����������� ������������������  도구로����������� ������������������  수집/저장/검색/분석/시각화����������� ������������������  등이����������� ������������������  어려운����������� ������������������  정형,����������� ������������������  반정형����������� ������������������  및����������� ������������������  비정형����������� ������������������  데이터의����������� ������������������  집합����������� ������������������  

����������� ������������������  

����������� ������������������  -����������� ������������������  하드웨어,����������� ������������������  소프트웨어적����������� ������������������  저장,����������� ������������������  분석의����������� ������������������  어려움을����������� ������������������  Grid����������� ������������������  computing,����������� ������������������  Cloud����������� ������������������  computing����������� ������������������  등����������� ������������������  기술로����������� ������������������  극복����������� ������������������  

����������� ������������������  -����������� ������������������  전통적����������� ������������������  데이터����������� ������������������  분석����������� ������������������  기법을����������� ������������������  개선����������� ������������������  

����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

Page 7: BigData, Hadoop과 Node.js

• 7

왜?����������� ������������������  

2011년에����������� ������������������  새롭게����������� ������������������  생성,����������� ������������������  복제되는����������� ������������������  정보의����������� ������������������  양은����������� ������������������  1.8ZB(1조8000억����������� ������������������  GigaByte)를����������� ������������������  넘어선다.����������� ������������������  향후����������� ������������������  5년간����������� ������������������  9배����������� ������������������  증가����������� ������������������  예상����������� ������������������  

����������� ������������������  ����������� ������������������  -����������� ������������������  1.8ZB는����������� ������������������  약����������� ������������������  4900만����������� ������������������  국민이����������� ������������������  18만년����������� ������������������  동안����������� ������������������  쉬지����������� ������������������  않고����������� ������������������  1분에����������� ������������������  트위터에����������� ������������������  3개의����������� ������������������  글을����������� ������������������  게시하는����������� ������������������  양과����������� ������������������  같다����������� ������������������  

����������� ������������������  ����������� ������������������  -����������� ������������������  2시간짜리����������� ������������������  HD영화����������� ������������������  2000억개와����������� ������������������  맞먹는다.����������� ������������������  

����������� ������������������  ����������� ������������������  -����������� ������������������  2011,����������� ������������������  IDC����������� ������������������  

����������� ������������������  

����������� ������������������  

이렇듯����������� ������������������  전세계����������� ������������������  디지털����������� ������������������  정보량은����������� ������������������  매����������� ������������������  2년마다����������� ������������������  2배씩����������� ������������������  증가����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

KT종합기술원:����������� ������������������  http://goo.gl/nVyre����������� ������������������  

Page 8: BigData, Hadoop과 Node.js

• 8

어디에?����������� ������������������  

SKT����������� ������������������  LTE����������� ������������������  가입자����������� ������������������  하루����������� ������������������  데이터����������� ������������������  1PB����������� ������������������  시대����������� ������������������  

����������� ������������������  ����������� ������������������  -����������� ������������������  5메가바이트(MB)����������� ������������������  분량의����������� ������������������  노래����������� ������������������  2억����������� ������������������  1474만8364곡을����������� ������������������  내려받거나����������� ������������������  영화����������� ������������������  153만3916편을����������� ������������������  내려받은����������� ������������������  셈.����������� ������������������  ����������� ������������������  

����������� ������������������  ����������� ������������������  -����������� ������������������  http://goo.gl/v5bHN����������� ������������������  

����������� ������������������  ����������� ������������������  -����������� ������������������  3000만����������� ������������������  가입자의����������� ������������������  분석����������� ������������������  

����������� ������������������  

����������� ������������������  

미국,����������� ������������������  싱가포르����������� ������������������  등����������� ������������������  정부����������� ������������������  차원에서����������� ������������������  테러,����������� ������������������  범죄����������� ������������������  방지를����������� ������������������  위한����������� ������������������  빅데이터����������� ������������������  수집/분석����������� ������������������  및����������� ������������������  예측����������� ������������������  체계를����������� ������������������  도입����������� ������������������  사례����������� ������������������  

����������� ������������������  

EU는����������� ������������������  금융위기����������� ������������������  극복,����������� ������������������  사회����������� ������������������  복잡성����������� ������������������  이해를����������� ������������������  위해����������� ������������������  Future����������� ������������������  ICT����������� ������������������  프로젝트����������� ������������������  

…⋯����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

Page 9: BigData, Hadoop과 Node.js

• 9

어떻게?����������� ������������������  

빅����������� ������������������  데이터의����������� ������������������  데이터는����������� ������������������  다양한����������� ������������������  분석����������� ������������������  기술,����������� ������������������  인프라를����������� ������������������  기반으로����������� ������������������  데이터����������� ������������������  안에서����������� ������������������  데이터를����������� ������������������  발견하는데����������� ������������������  중점.����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

http://goo.gl/97PRT����������� ������������������  

Page 10: BigData, Hadoop과 Node.js

• 10

데이터베이스의����������� ������������������  진화����������� ������������������  

데이터들이����������� ������������������  빠르게����������� ������������������  증가하는����������� ������������������  만큼����������� ������������������  노이즈����������� ������������������  데이터라고����������� ������������������  불리우는����������� ������������������  쓸모����������� ������������������  없는����������� ������������������  데이터들도����������� ������������������  많이����������� ������������������  생성����������� ������������������  

이런����������� ������������������  비정형화된����������� ������������������  노이즈����������� ������������������  데이터의����������� ������������������  중요성이����������� ������������������  증대,����������� ������������������  분석����������� ������������������  요구����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

http://goo.gl/97PRT����������� ������������������  

Page 11: BigData, Hadoop과 Node.js

• 11

데이터����������� ������������������  종류����������� ������������������  

빅����������� ������������������  데이터의����������� ������������������  데이터는����������� ������������������  정형화����������� ������������������  정도에����������� ������������������  따라,����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

KT종합기술원:����������� ������������������  http://goo.gl/nVyre����������� ������������������  

Page 12: BigData, Hadoop과 Node.js

• 12

Data����������� ������������������  storage����������� ������������������  

데이터����������� ������������������  저장����������� ������������������  비용의����������� ������������������  감소����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

http://www.deepspar.com/wp-data-loss.html����������� ������������������  

Page 13: BigData, Hadoop과 Node.js

• 13

분산컴퓨팅����������� ������������������  진화����������� ������������������  Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

Page 14: BigData, Hadoop과 Node.js

• 14

요소기술����������� ������������������  진화����������� ������������������  

다중����������� ������������������  분산����������� ������������������  시스템����������� ������������������  변화����������� ������������������  à����������� ������������������  가상화����������� ������������������  à����������� ������������������  서비스화����������� ������������������  

On Demand Computing

사용자가����������� ������������������  필요로����������� ������������������  할����������� ������������������  때����������� ������������������  언제����������� ������������������  어디서지����������� ������������������  컴퓨팅����������� ������������������  및����������� ������������������  서비스를����������� ������������������  이용할����������� ������������������  수����������� ������������������  있는����������� ������������������  주문형����������� ������������������  기반����������� ������������������  컴퓨팅����������� ������������������  

Grid Computing

주어진����������� ������������������  문제를����������� ������������������  풀기����������� ������������������  위해서����������� ������������������  네트워크����������� ������������������  상의����������� ������������������  수����������� ������������������  많은����������� ������������������  컴퓨터의����������� ������������������  자원을����������� ������������������  이용하는����������� ������������������  컴퓨팅.����������� ������������������  서로����������� ������������������  상이한����������� ������������������  컴퓨터들이����������� ������������������  가상의����������� ������������������  대형����������� ������������������  컴퓨터를����������� ������������������  구헝à����������� ������������������  고도의����������� ������������������  연산,����������� ������������������  대용량����������� ������������������  연산����������� ������������������  처리����������� ������������������  (����������� ������������������  SETI)����������� ������������������  ����������� ������������������  ����������� ������������������  

Virtualization

물리적����������� ������������������  시스템����������� ������������������  개체들을����������� ������������������  논리적����������� ������������������  하드웨어����������� ������������������  단위로����������� ������������������  분리.����������� ������������������  컴퓨팅����������� ������������������  자원의����������� ������������������  물리적����������� ������������������  특징을����������� ������������������  숨기고����������� ������������������  이들����������� ������������������  자원을����������� ������������������  사용하는����������� ������������������  다른����������� ������������������  시스템,����������� ������������������  애플리케이션����������� ������������������  및����������� ������������������  사용자에게����������� ������������������  단일한����������� ������������������  시스템����������� ������������������  이미지를����������� ������������������  제공하는����������� ������������������  개념.����������� ������������������  또한����������� ������������������  단일����������� ������������������  자원이����������� ������������������  여러개의����������� ������������������  논리����������� ������������������  단위로����������� ������������������  혹은����������� ������������������  반대를����������� ������������������  포함한다.����������� ������������������  à����������� ������������������  LVM,����������� ������������������  VMWare����������� ������������������  

Utility Computing 사용자가����������� ������������������  필요한����������� ������������������  만큼����������� ������������������  시스템����������� ������������������  자원을����������� ������������������  사용하고����������� ������������������  그����������� ������������������  사용량에����������� ������������������  따라����������� ������������������  비용을����������� ������������������  지불하는����������� ������������������  개념의����������� ������������������  컴퓨팅����������� ������������������  ����������� ������������������  à����������� ������������������  SaaS;����������� ������������������  Salesforce.com����������� ������������������  

Cloud Computing 가상화되고����������� ������������������  Privisioning을����������� ������������������  포함해����������� ������������������  상업적으로����������� ������������������  Utility-computing����������� ������������������  서비스를����������� ������������������  시행����������� ������������������  ����������� ������������������  à����������� ������������������  E2C,����������� ������������������  AppEngine,����������� ������������������  Cloud����������� ������������������  hosting����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

Page 15: BigData, Hadoop과 Node.js

• 15

Don’t����������� ������������������  buy,����������� ������������������  be����������� ������������������  use!����������� ������������������  

HW,����������� ������������������  SW의����������� ������������������  물리적����������� ������������������  제약을����������� ������������������  가상화로����������� ������������������  해결����������� ������������������  

http://www.slideshare.net/CiscoSP360/vmworld-2009-vmworld-data-center

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

Page 16: BigData, Hadoop과 Node.js

• 16

BigData����������� ������������������  story����������� ������������������  

Database,����������� ������������������  Dataware����������� ������������������  House,����������� ������������������  Data����������� ������������������  mart����������� ������������������  등의����������� ������������������  정적����������� ������������������  데이터����������� ������������������  기반은����������� ������������������  대규모����������� ������������������  메모리,����������� ������������������  SAN����������� ������������������  Storage����������� ������������������  등을����������� ������������������  대용량����������� ������������������  파일시스템����������� ������������������  마운트를����������� ������������������  기반으로����������� ������������������  고가용성을����������� ������������������  유지����������� ������������������  ����������� ������������������  -����������� ������������������  단,����������� ������������������  scale-up����������� ������������������  기반의����������� ������������������  성능����������� ������������������  향상����������� ������������������  ����������� ������������������  구글은����������� ������������������  검색기반����������� ������������������  광고에����������� ������������������  Tera����������� ������������������  ->����������� ������������������  Peta����������� ������������������  규모의����������� ������������������  데이터����������� ������������������  분석등을����������� ������������������  위핸����������� ������������������  MapRedue����������� ������������������  라는����������� ������������������  모델을����������� ������������������  구글파일시스템(GFS)에서����������� ������������������  활용����������� ������������������  이런����������� ������������������  MapReduce����������� ������������������  솔루션����������� ������������������  중에서����������� ������������������  오픈소스로����������� ������������������  주목����������� ������������������  받는����������� ������������������  기술이����������� ������������������  Java기반의����������� ������������������  Apache����������� ������������������  Hadoop����������� ������������������  이다.����������� ������������������  Hadoop은����������� ������������������  야후����������� ������������������  더그커킹이����������� ������������������  개발/배포하다����������� ������������������  오픈소스화.����������� ������������������  ����������� ������������������  페이스북,트위터,링크드인,����������� ������������������  이베이,����������� ������������������  아마존����������� ������������������  등����������� ������������������  이용����������� ������������������  국내����������� ������������������  NexR이����������� ������������������  hadoop����������� ������������������  및����������� ������������������  클라우드����������� ������������������  기반����������� ������������������  솔루션,����������� ������������������  이후����������� ������������������  KT크라우드웨어에서����������� ������������������  R+Hive����������� ������������������  솔루션����������� ������������������  RHive����������� ������������������  제공.����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

미래사회와 빅 데이터(Big Data)기술

Page 17: BigData, Hadoop과 Node.js

• 17

BigData와����������� ������������������  Cloud����������� ������������������  

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  http://www.citsoft.net/?page_id=336����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

Page 18: BigData, Hadoop과 Node.js

1.����������� ������������������  Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  ����������� ������������������  02.����������� ������������������  Big����������� ������������������  Data����������� ������������������  요소����������� ������������������  기술����������� ������������������  

Page 19: BigData, Hadoop과 Node.js

• 19

V����������� ������������������  V����������� ������������������  V����������� ������������������  

3대����������� ������������������  요소����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

Page 20: BigData, Hadoop과 Node.js

• 20

Volume����������� ������������������  

웹����������� ������������������  로그,����������� ������������������  지메일����������� ������������������  서버����������� ������������������  등의����������� ������������������  데이터는����������� ������������������  수����������� ������������������  PB����������� ������������������  이상����������� ������������������  

트위터의����������� ������������������  메시징����������� ������������������  정보량����������� ������������������  GB����������� ������������������  미만����������� ������������������  등…⋯����������� ������������������  

안정적����������� ������������������  데이터와����������� ������������������  분석,����������� ������������������  처리에����������� ������������������  중점을����������� ������������������  두는����������� ������������������  데이터의����������� ������������������  

차별이����������� ������������������  필요하다.����������� ������������������  

물리적����������� ������������������  크기보다����������� ������������������  데이터의����������� ������������������  속성에����������� ������������������  따라����������� ������������������  중요성을����������� ������������������  판단하고����������� ������������������  

처리하는데����������� ������������������  중점����������� ������������������  

����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

http://goo.gl/aXm24����������� ������������������  

Page 21: BigData, Hadoop과 Node.js

• 21

Velocity����������� ������������������  

데이터를����������� ������������������  처리하는����������� ������������������  속도����������� ������������������  

배치����������� ������������������  분석����������� ������������������  

실시간����������� ������������������  분석����������� ������������������  

결과에����������� ������������������  대한����������� ������������������  가시화����������� ������������������  기능도����������� ������������������  중요����������� ������������������  

����������� ������������������  -����������� ������������������  단,����������� ������������������  가시화가����������� ������������������  처리를����������� ������������������  능가하면����������� ������������������  안됨����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

Page 22: BigData, Hadoop과 Node.js

• 22

Variety����������� ������������������  

전통적����������� ������������������  데이터는����������� ������������������  기업내부의����������� ������������������  ERP,����������� ������������������  SCM,����������� ������������������  MES,����������� ������������������  CRM����������� ������������������  등은����������� ������������������  RDBMS����������� ������������������  기반의����������� ������������������  정형화된����������� ������������������  데이터를����������� ������������������  구축해서����������� ������������������  운영하고����������� ������������������  있다.����������� ������������������  

기업����������� ������������������  외부의����������� ������������������  데이터인����������� ������������������  마케팅,����������� ������������������  평판,����������� ������������������  기사����������� ������������������  등의����������� ������������������  데이터는����������� ������������������  데이터웨어하우스를����������� ������������������  통해����������� ������������������  유지,����������� ������������������  분석했다.����������� ������������������  

그러나����������� ������������������  인터넷����������� ������������������  시대에����������� ������������������  모든����������� ������������������  데이터를����������� ������������������  정형/반정형화����������� ������������������  해서����������� ������������������  이용하는데����������� ������������������  한계에����������� ������������������  직면����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

http://goo.gl/MTKST����������� ������������������  

Page 23: BigData, Hadoop과 Node.js

• 23

http://goo.gl/80Hb4����������� ������������������  

d����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

Page 24: BigData, Hadoop과 Node.js

• 24

주요����������� ������������������  업체����������� ������������������  

Hortonworks����������� ������������������  ­–����������� ������������������  야후분사,����������� ������������������  Hadoop����������� ������������������  코어����������� ������������������  지원,����������� ������������������  아치텍쳐����������� ������������������  

Cloudera����������� ������������������  ­–����������� ������������������  야후분사,����������� ������������������  기술지원,����������� ������������������  교육����������� ������������������  및����������� ������������������  배포판����������� ������������������  제공����������� ������������������  

IBM����������� ������������������  ­–����������� ������������������  Apache����������� ������������������  hadoop����������� ������������������  기반����������� ������������������  basic,����������� ������������������  enterprise����������� ������������������  배포판����������� ������������������  

EMC����������� ������������������  ­–����������� ������������������  DW����������� ������������������  Greenplum에����������� ������������������  MapR����������� ������������������  통합해����������� ������������������  제공,����������� ������������������  Apache����������� ������������������  Hadoop����������� ������������������  기반����������� ������������������  community����������� ������������������  edition����������� ������������������  

Oracle����������� ������������������  ­–����������� ������������������  HW����������� ������������������  +����������� ������������������  Cloudera����������� ������������������  

DataStax����������� ������������������  ­–����������� ������������������  Hadoop����������� ������������������  +����������� ������������������  Hive����������� ������������������  +����������� ������������������  Cassandra����������� ������������������  

Datameer����������� ������������������  ­–����������� ������������������  Analytic����������� ������������������  solution����������� ������������������  

Hadapt����������� ������������������  ­–����������� ������������������  Analytic����������� ������������������  platform����������� ������������������  

HStreaming����������� ������������������  ­–����������� ������������������  Real����������� ������������������  tie����������� ������������������  processing����������� ������������������  

����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

미래사회와 빅 데이터(Big Data)기술

Page 25: BigData, Hadoop과 Node.js

• 25

솔루션간����������� ������������������  관계����������� ������������������  Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

미래사회와 빅 데이터(Big Data)기술

Page 26: BigData, Hadoop과 Node.js

• 26

2.����������� ������������������  BigData의����������� ������������������  분석기법����������� ������������������  

01.����������� ������������������  BigData����������� ������������������  처리����������� ������������������  

02.����������� ������������������  BigData����������� ������������������  분석기법����������� ������������������  

03.����������� ������������������  BigData����������� ������������������  ����������� ������������������  

Page 27: BigData, Hadoop과 Node.js

1.����������� ������������������  Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  ����������� ������������������  01.����������� ������������������  Big����������� ������������������  Data����������� ������������������  처리����������� ������������������  

Page 28: BigData, Hadoop과 Node.js

• 28

빅데이터����������� ������������������  처리는����������� ������������������  

빠른����������� ������������������  의사결정이����������� ������������������  상대적으로����������� ������������������  덜����������� ������������������  요구된다����������� ������������������  

처리����������� ������������������  복잡도가����������� ������������������  높다����������� ������������������  

처리할����������� ������������������  데이터����������� ������������������  양이����������� ������������������  방대하다����������� ������������������  

비정형����������� ������������������  데이터����������� ������������������  비중이����������� ������������������  높다����������� ������������������  

처리/분석����������� ������������������  유연성이����������� ������������������  높다����������� ������������������  

동시처리량이����������� ������������������  낮다����������� ������������������  

BigData����������� ������������������  처리����������� ������������������  

가트너����������� ������������������  11년����������� ������������������  보고서����������� ������������������  

Page 29: BigData, Hadoop과 Node.js

• 29

처리����������� ������������������  방식����������� ������������������  

다양한����������� ������������������  스토리지,����������� ������������������  컴퓨팅����������� ������������������  기술����������� ������������������  과����������� ������������������  분석����������� ������������������  기술을����������� ������������������  이용한다.����������� ������������������  

그래서����������� ������������������  빅����������� ������������������  데이터����������� ������������������  기술은����������� ������������������  크게����������� ������������������  분석����������� ������������������  기법과����������� ������������������  분석����������� ������������������  인프라로����������� ������������������  구성����������� ������������������  

Big����������� ������������������  Data의����������� ������������������  개요����������� ������������������  

KT경제연구소,����������� ������������������  Big����������� ������������������  Data,����������� ������������������  미래를����������� ������������������  여는����������� ������������������  비밀의����������� ������������������  열쇠����������� ������������������  

Page 30: BigData, Hadoop과 Node.js

BigData의����������� ������������������  분석기법����������� ������������������  ����������� ������������������  02.����������� ������������������  주요����������� ������������������  분석����������� ������������������  기법����������� ������������������  

Page 31: BigData, Hadoop과 Node.js

• 31

TextMining����������� ������������������  

텍스트마이닝은����������� ������������������  비/반정형����������� ������������������  텍스트����������� ������������������  데이터에서����������� ������������������  자연어처리Natural����������� ������������������  Language����������� ������������������  Processing����������� ������������������  기반����������� ������������������  추출/가공을����������� ������������������  목적����������� ������������������  

����������� ������������������  -����������� ������������������  방대한����������� ������������������  텍스트����������� ������������������  내용����������� ������������������  안에서����������� ������������������  의미����������� ������������������  있는����������� ������������������  정보를����������� ������������������  추출해����������� ������������������  다른����������� ������������������  정보와의����������� ������������������  연계성을����������� ������������������  파악해����������� ������������������  텍스트의����������� ������������������  분류화����������� ������������������  

����������� ������������������  -����������� ������������������  단순����������� ������������������  키워드����������� ������������������  검색����������� ������������������  이상의����������� ������������������  결과를����������� ������������������  얻는다.����������� ������������������  

����������� ������������������  

다양한����������� ������������������  텍스트마이닝����������� ������������������  기술����������� ������������������  요소����������� ������������������  참조����������� ������������������  

����������� ������������������  ����������� ������������������  -����������� ������������������  http://goo.gl/VeBGL����������� ������������������  

����������� ������������������  

예)����������� ������������������  Hadoop의����������� ������������������  Mahout����������� ������������������  서브����������� ������������������  시스템����������� ������������������  

����������� ������������������  

BigData����������� ������������������  분석기법����������� ������������������  

Page 32: BigData, Hadoop과 Node.js

• 32

Opinion����������� ������������������  Mining����������� ������������������  

텍스트마이닝����������� ������������������  분야로����������� ������������������  일명����������� ������������������  평판분석����������� ������������������  Sentiment����������� ������������������  Analysis����������� ������������������  

소셜미디어����������� ������������������  등의����������� ������������������  정형/비정형����������� ������������������  텍스트의����������� ������������������  긍정Positive,����������� ������������������  부정Negative,����������� ������������������  중립Neutral����������� ������������������  의����������� ������������������  선호도를����������� ������������������  판별����������� ������������������  

����������� ������������������  

예)����������� ������������������  소셜네트워크에서����������� ������������������  서비스/상품의����������� ������������������  ����������� ������������������  시장규모����������� ������������������  예측,����������� ������������������  소비자의����������� ������������������  반응,����������� ������������������  ����������� ������������������  입소문����������� ������������������  분석����������� ������������������  등을����������� ������������������  위해����������� ������������������  활용.����������� ������������������  

����������� ������������������  

����������� ������������������  

SNS에서����������� ������������������  오피니언마이닝����������� ������������������  

����������� ������������������  -����������� ������������������  http://www.slideshare.net/hyummoki/sns-12894995����������� ������������������  

����������� ������������������  

BigData����������� ������������������  분석기법����������� ������������������  

연구데이터����������� ������������������  지원����������� ������������������  /����������� ������������������  오피니언마이닝을����������� ������������������  위해����������� ������������������  데이터����������� ������������������  제공����������� ������������������  http://lab.naver.com/research/����������� ������������������  

Page 33: BigData, Hadoop과 Node.js

• 33

SNS����������� ������������������  Analytics����������� ������������������  

소셜네트워크의����������� ������������������  연결구조,����������� ������������������  강도����������� ������������������  등의����������� ������������������  분석은����������� ������������������  그래프����������� ������������������  이론을����������� ������������������  기반으로����������� ������������������  한다.����������� ������������������  ����������� ������������������  

소셜네트워크����������� ������������������  사용자의����������� ������������������  명성,����������� ������������������  영향력����������� ������������������  등을����������� ������������������  측정����������� ������������������  가능하다.����������� ������������������  

����������� ������������������  

소셜네트워크����������� ������������������  내에서����������� ������������������  입소문의����������� ������������������  ����������� ������������������  중심,����������� ������������������  허브����������� ������������������  역할����������� ������������������  사용자����������� ������������������  검색����������� ������������������  

이런����������� ������������������  영향력있는����������� ������������������  Influencer의����������� ������������������  ����������� ������������������  모니터링,����������� ������������������  관리를����������� ������������������  목적����������� ������������������  

����������� ������������������  

����������� ������������������  

소셜����������� ������������������  네트워크����������� ������������������  분석����������� ������������������  사례����������� ������������������  

����������� ������������������  -����������� ������������������  http://www.slideshare.net/webscikorea/ss-2659452����������� ������������������  

BigData����������� ������������������  분석기법����������� ������������������  

http://cyram.tistory.com/35����������� ������������������  

Page 34: BigData, Hadoop과 Node.js

• 34

Cluster����������� ������������������  Analysis����������� ������������������  

군집분석����������� ������������������  Cluster����������� ������������������  Analysis는����������� ������������������  비슷한����������� ������������������  개체를����������� ������������������  합쳐가며����������� ������������������  최종적으로����������� ������������������  유사����������� ������������������  특성의����������� ������������������  군Group을����������� ������������������  발굴하는데����������� ������������������  사용����������� ������������������  

예로����������� ������������������  소셜네트워크에서����������� ������������������  영화,����������� ������������������  정치����������� ������������������  등을����������� ������������������  주로����������� ������������������  이야기����������� ������������������  하는����������� ������������������  사용자군,����������� ������������������  자동차에����������� ������������������  관심있는����������� ������������������  군을����������� ������������������  추출����������� ������������������  

����������� ������������������  

BigData����������� ������������������  분석기법����������� ������������������  

http://cyram.tistory.com/72����������� ������������������  

Page 35: BigData, Hadoop과 Node.js

BigData의����������� ������������������  분석기법����������� ������������������  ����������� ������������������  03.����������� ������������������  주요����������� ������������������  분석����������� ������������������  Infra����������� ������������������  기술����������� ������������������  

Page 36: BigData, Hadoop과 Node.js

BigData의����������� ������������������  분석기법����������� ������������������  ����������� ������������������  03.����������� ������������������  주요����������� ������������������  분석����������� ������������������  Infra����������� ������������������  기술����������� ������������������  

Page 37: BigData, Hadoop과 Node.js

• 37

Infra����������� ������������������  structure����������� ������������������  

테라,����������� ������������������  페타,����������� ������������������  제타����������� ������������������  바이트����������� ������������������  이상의����������� ������������������  데이터를����������� ������������������  저장,����������� ������������������  분석을����������� ������������������  위한����������� ������������������  인프라����������� ������������������  기술����������� ������������������  개발이����������� ������������������  중요.����������� ������������������  

BigData����������� ������������������  분석기법����������� ������������������  

http://goo.gl/VT5Z4����������� ������������������  

Page 38: BigData, Hadoop과 Node.js

• 38

Hadoop����������� ������������������  

테라,����������� ������������������  페타,����������� ������������������  제타����������� ������������������  바이트����������� ������������������  이상의����������� ������������������  데이터를����������� ������������������  저장,����������� ������������������  분석을����������� ������������������  위한����������� ������������������  인프라����������� ������������������  기술����������� ������������������  개발이����������� ������������������  중요.����������� ������������������  

Hadoop����������� ������������������  

����������� ������������������  -����������� ������������������  오픈소스����������� ������������������  분산데이터����������� ������������������  처리����������� ������������������  기술����������� ������������������  

����������� ������������������  -����������� ������������������  HDFS과����������� ������������������  Hbase,����������� ������������������  MapReduce����������� ������������������  등����������� ������������������  ����������� ������������������  서브����������� ������������������  시스템의����������� ������������������  집합����������� ������������������  

����������� ������������������  -����������� ������������������  HDFS,����������� ������������������  Hbase는����������� ������������������  각각����������� ������������������  구글����������� ������������������  GFS,����������� ������������������  ����������� ������������������  Big����������� ������������������  Table����������� ������������������  영향받아����������� ������������������  비용효율적인����������� ������������������  ����������� ������������������  x86����������� ������������������  서버로����������� ������������������  가상화된����������� ������������������  ����������� ������������������  대형스토리지����������� ������������������  구성,����������� ������������������  저장된����������� ������������������  ����������� ������������������  데이터셋을����������� ������������������  간편하게����������� ������������������  분산처리할����������� ������������������  ����������� ������������������  수����������� ������������������  있는����������� ������������������  Java기반의����������� ������������������  MapReduce����������� ������������������  프레임워크����������� ������������������  제공����������� ������������������  

BigData����������� ������������������  분석기법����������� ������������������  

Page 39: BigData, Hadoop과 Node.js

• 39

R����������� ������������������  

오픈소스����������� ������������������  프로젝트로����������� ������������������  통계계산����������� ������������������  및����������� ������������������  시각화를����������� ������������������  위한����������� ������������������  언어����������� ������������������  및����������� ������������������  개발환경����������� ������������������  

����������� ������������������  -����������� ������������������  통계기법,����������� ������������������  모델링,����������� ������������������  데이터마이닝����������� ������������������  기법의����������� ������������������  구현����������� ������������������  /����������� ������������������  계산����������� ������������������  

����������� ������������������  -����������� ������������������  결과는����������� ������������������  그래프����������� ������������������  등의����������� ������������������  시각화����������� ������������������  기능����������� ������������������  

����������� ������������������  -����������� ������������������  Java,����������� ������������������  C,����������� ������������������  Python과����������� ������������������  연계����������� ������������������  

����������� ������������������  -����������� ������������������  Windows,����������� ������������������  Mac,����������� ������������������  Linux,����������� ������������������  Unix����������� ������������������  등����������� ������������������  지원����������� ������������������  

����������� ������������������  -����������� ������������������  하둡����������� ������������������  상에서����������� ������������������  분산처리����������� ������������������  지원����������� ������������������  라이브러리를����������� ������������������  통해서����������� ������������������  구글,����������� ������������������  페이스북,����������� ������������������  아마존����������� ������������������  등����������� ������������������  빅데이터����������� ������������������  분석이����������� ������������������  필요한����������� ������������������  기업에서����������� ������������������  사용����������� ������������������  

����������� ������������������  

����������� ������������������  -����������� ������������������  http://www.r-project.org/����������� ������������������  

BigData����������� ������������������  분석기법����������� ������������������  

Page 40: BigData, Hadoop과 Node.js

• 40

NoSQL����������� ������������������  

Not-Only����������� ������������������  SQL,����������� ������������������  No����������� ������������������  SQL!����������� ������������������  

테이블����������� ������������������  스키마가����������� ������������������  고정되지����������� ������������������  않고,����������� ������������������  테이블����������� ������������������  조인����������� ������������������  없어����������� ������������������  수평적����������� ������������������  확장이����������� ������������������  용이하다.����������� ������������������  ����������� ������������������  

RDB가����������� ������������������  관계에����������� ������������������  중점되어����������� ������������������  일관성이����������� ������������������  중요시����������� ������������������  된다면,����������� ������������������  

NoSQL은����������� ������������������  분산����������� ������������������  가능성에����������� ������������������  중점을����������� ������������������  두어����������� ������������������  일관성과����������� ������������������  유효성은����������� ������������������  보장����������� ������������������  않는다.����������� ������������������  

이것은����������� ������������������  일관성,����������� ������������������  유효성,����������� ������������������  분산가능성����������� ������������������  중����������� ������������������  2가지만����������� ������������������  보장한다는����������� ������������������  분산����������� ������������������  데이터베이스����������� ������������������  시스템의����������� ������������������  CAP����������� ������������������  이론을����������� ������������������  따른����������� ������������������  것.����������� ������������������  

����������� ������������������  

BigData����������� ������������������  분석기법����������� ������������������  

Page 41: BigData, Hadoop과 Node.js

• 41

주요����������� ������������������  아키텍처����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

http://plurrimi.wordpress.com/2013/03/14/big-data-architecture/����������� ������������������  

BigData����������� ������������������  분석기법����������� ������������������  

Page 42: BigData, Hadoop과 Node.js

• 42

3.����������� ������������������  BigData의����������� ������������������  활용����������� ������������������  

활용사례����������� ������������������  

Page 43: BigData, Hadoop과 Node.js

BigData의����������� ������������������  활용����������� ������������������  ����������� ������������������  활용사례����������� ������������������  

Page 44: BigData, Hadoop과 Node.js

• 44

활용사례����������� ������������������  BigData의����������� ������������������  활용����������� ������������������  

한국지역정보개발원,����������� ������������������  ‘빅����������� ������������������  데이터����������� ������������������  시대의����������� ������������������  데이터����������� ������������������  활용과����������� ������������������  전략’����������� ������������������  

Page 45: BigData, Hadoop과 Node.js

• 45

교통����������� ������������������  

교통정보를����������� ������������������  분산����������� ������������������  시스템으로����������� ������������������  수집����������� ������������������  

BigData의����������� ������������������  활용����������� ������������������  

http://dblab.pusan.ac.kr/xe/collectstore����������� ������������������  

Page 46: BigData, Hadoop과 Node.js

• 46

saltlux.com����������� ������������������  

다양한����������� ������������������  솔루션����������� ������������������  

����������� ������������������  -����������� ������������������  http://www.saltlux.com/discovery/����������� ������������������  

BigData의����������� ������������������  활용����������� ������������������  

Page 47: BigData, Hadoop과 Node.js

• 47

기업은행����������� ������������������  

기업은행은����������� ������������������  2013년����������� ������������������  빅데이터����������� ������������������  서비스로����������� ������������������  인터넷,����������� ������������������  SNS����������� ������������������  안에서����������� ������������������  기업은행의����������� ������������������  평판을����������� ������������������  분석해����������� ������������������  마케팅����������� ������������������  등에����������� ������������������  활용����������� ������������������  계획����������� ������������������  

����������� ������������������  -����������� ������������������  은행의����������� ������������������  긍정,����������� ������������������  부정����������� ������������������  내용을����������� ������������������  분석해����������� ������������������  이용����������� ������������������  

����������� ������������������  -����������� ������������������  2013년����������� ������������������  초에����������� ������������������  데이터����������� ������������������  분석����������� ������������������  시작����������� ������������������  

����������� ������������������  

단,����������� ������������������  민감한����������� ������������������  금융,����������� ������������������  고객����������� ������������������  개인����������� ������������������  데이터에����������� ������������������  대한����������� ������������������  분석은����������� ������������������  개인정보보호에����������� ������������������  대한����������� ������������������  우려가����������� ������������������  있기����������� ������������������  때문에����������� ������������������  주로����������� ������������������  명성����������� ������������������  분석,����������� ������������������  시장����������� ������������������  분석����������� ������������������  등에����������� ������������������  활용되는����������� ������������������  추세다.����������� ������������������  ����������� ������������������  

IT����������� ������������������  업계����������� ������������������  관계자는����������� ������������������  "대규모����������� ������������������  고객정보와����������� ������������������  금융����������� ������������������  정보����������� ������������������  등을����������� ������������������  분석하는����������� ������������������  것에는����������� ������������������  우려가����������� ������������������  있는����������� ������������������  것이����������� ������������������  사실"이라며����������� ������������������  "명확한����������� ������������������  규정과����������� ������������������  가이드라인����������� ������������������  등이����������� ������������������  나오기까지는����������� ������������������  명성����������� ������������������  분석이����������� ������������������  주류를����������� ������������������  이룰����������� ������������������  것으로����������� ������������������  보인다"고����������� ������������������  말했다.����������� ������������������  당분간����������� ������������������  금융기관들의����������� ������������������  빅데이터����������� ������������������  활용은����������� ������������������  평판����������� ������������������  분석에����������� ������������������  초점이����������� ������������������  맞춰질����������� ������������������  것으로����������� ������������������  전망된다.����������� ������������������  

����������� ������������������  

����������� ������������������  

BigData의����������� ������������������  활용����������� ������������������  

http://www.dt.co.kr/contents.html?article_no=2013010402010457739006����������� ������������������  

Page 48: BigData, Hadoop과 Node.js

• 48

빅데이터����������� ������������������  프로젝트����������� ������������������  

•  전자정부����������� ������������������  빅데이터����������� ������������������  시범����������� ������������������  프로젝트����������� ������������������  

•  삼성전자����������� ������������������  빅데이터����������� ������������������  표준����������� ������������������  플랫폼����������� ������������������  선정����������� ������������������  

•  기업은행����������� ������������������  

•  코오롱����������� ������������������  

•  GS샵����������� ������������������  ����������� ������������������  

����������� ������������������  

http://goo.gl/wnHWS����������� ������������������  

BigData의����������� ������������������  활용����������� ������������������  

Page 49: BigData, Hadoop과 Node.js

• 49

클라우드����������� ������������������  서비스����������� ������������������  

클라우드를����������� ������������������  통해����������� ������������������  데이터����������� ������������������  스토리지����������� ������������������  제공����������� ������������������  

BigData의����������� ������������������  활용����������� ������������������  

http://goo.gl/wmgb5

Page 50: BigData, Hadoop과 Node.js

• 50

구글����������� ������������������  클라우드����������� ������������������  데이트스토어����������� ������������������  

클라우드����������� ������������������  데이터스토어는����������� ������������������  NoSQL과����������� ������������������  같은����������� ������������������  비관계형����������� ������������������  DB를����������� ������������������  관리할����������� ������������������  수����������� ������������������  있게����������� ������������������  도와준다����������� ������������������  

SQL����������� ������������������  같은����������� ������������������  방식으로����������� ������������������  질의를����������� ������������������  처리하고����������� ������������������  AICD����������� ������������������  트랜잭션도����������� ������������������  보장한다����������� ������������������  

����������� ������������������  

https://developers.google.com/datastore/����������� ������������������  

BigData의����������� ������������������  활용����������� ������������������  

Page 51: BigData, Hadoop과 Node.js

• 51

구글����������� ������������������  클라우드����������� ������������������  데이트스토어����������� ������������������  

클라우드����������� ������������������  데이터스토어는����������� ������������������  NoSQL과����������� ������������������  같은����������� ������������������  비관계형����������� ������������������  DB를����������� ������������������  관리할����������� ������������������  수����������� ������������������  있게����������� ������������������  도와준다����������� ������������������  

SQL����������� ������������������  같은����������� ������������������  방식으로����������� ������������������  질의를����������� ������������������  처리하고����������� ������������������  AICD����������� ������������������  트랜잭션도����������� ������������������  보장한다����������� ������������������  

����������� ������������������  

https://developers.google.com/datastore/����������� ������������������  

BigData의����������� ������������������  활용����������� ������������������  

Page 52: BigData, Hadoop과 Node.js

• 52

ucloud����������� ������������������  MapReduce����������� ������������������  

KT����������� ������������������  Ucloud����������� ������������������  에서����������� ������������������  제공하는����������� ������������������  Hadoop����������� ������������������  서비스����������� ������������������  

����������� ������������������  -����������� ������������������  https://ucloudbiz.olleh.com/portal/ktcloudportal.epc.productintro.mapreduce.html����������� ������������������  

Page 53: BigData, Hadoop과 Node.js

• 53 53

클라우드����������� ������������������  서버에서����������� ������������������  앱����������� ������������������  서비스를����������� ������������������  위한����������� ������������������  공간을����������� ������������������  제공하고����������� ������������������  여러����������� ������������������  기능을����������� ������������������  이용할����������� ������������������  수����������� ������������������  있는����������� ������������������  Open����������� ������������������  API를����������� ������������������  준비해준다.����������� ������������������  개발자는����������� ������������������  RestFull����������� ������������������  기반의����������� ������������������  Open����������� ������������������  API����������� ������������������  를����������� ������������������  호출하기만����������� ������������������  하면����������� ������������������  서버����������� ������������������  공간에����������� ������������������  자신만의����������� ������������������  백엔드����������� ������������������  서비스를����������� ������������������  손쉽게����������� ������������������  구축할����������� ������������������  수����������� ������������������  있다.����������� ������������������  

baas.io����������� ������������������  서비스����������� ������������������  

https://api.baas.io/<user_id>/<app_name>����������� ������������������  

BigData의����������� ������������������  활용����������� ������������������  

Page 54: BigData, Hadoop과 Node.js

• 54 54

����������� ������������������  ����������� ������������������  http://evanmuehlhausen.com/data-mining-local-radio-with-nodejs/����������� ������������������  

datamining����������� ������������������  with����������� ������������������  node����������� ������������������  BigData의����������� ������������������  활용����������� ������������������  

Page 55: BigData, Hadoop과 Node.js

• 55

3.����������� ������������������  Hadoop����������� ������������������  

01.����������� ������������������  Hadoop����������� ������������������  소개����������� ������������������  

02.����������� ������������������  Hadoop����������� ������������������  ECO����������� ������������������  System����������� ������������������  

03.����������� ������������������  Installation����������� ������������������  

����������� ������������������  

Page 56: BigData, Hadoop과 Node.js

3.����������� ������������������  Hadoop����������� ������������������  

01.����������� ������������������  Hadoop����������� ������������������  소개����������� ������������������  

Page 57: BigData, Hadoop과 Node.js

• 57

Hadoop����������� ������������������  overview����������� ������������������  

ds����������� ������������������  

Hadoop����������� ������������������  

Page 58: BigData, Hadoop과 Node.js

• 58

Hadoop기반����������� ������������������  분석����������� ������������������  Hadoop����������� ������������������  

Page 59: BigData, Hadoop과 Node.js

• 59

BigData����������� ������������������  stack����������� ������������������  

BigData����������� ������������������  분석/처리/결과를����������� ������������������  위한����������� ������������������  스택����������� ������������������  

Hadoop����������� ������������������  

http://www.slideshare.net/Channy/daums-hadoop-usecases

Page 60: BigData, Hadoop과 Node.js

• 60

Hadoop����������� ������������������  stack����������� ������������������  

Hadoop의����������� ������������������  core와����������� ������������������  sub����������� ������������������  system����������� ������������������  

Hadoop����������� ������������������  

http://www.slideshare.net/Channy/daums-hadoop-usecases

Page 61: BigData, Hadoop과 Node.js

• 61

Hadoop����������� ������������������  HDFS����������� ������������������  

highly����������� ������������������  fault-tolerant,����������� ������������������  on����������� ������������������  low-cost����������� ������������������  hardware.����������� ������������������  

Hadoop����������� ������������������  

http://goo.gl/8ogSk

Page 62: BigData, Hadoop과 Node.js

• 62

Daum����������� ������������������  사례����������� ������������������  

하둡을����������� ������������������  이용한����������� ������������������  다음����������� ������������������  로그����������� ������������������  분석����������� ������������������  

Hadoop����������� ������������������  

http://www.slideshare.net/Channy/daums-hadoop-usecases

Page 63: BigData, Hadoop과 Node.js

• 63

하둡적용����������� ������������������  사례����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

http://blrunner.tistory.com/41����������� ������������������  

Hadoop����������� ������������������  

Page 64: BigData, Hadoop과 Node.js

3.����������� ������������������  Hadoop����������� ������������������  

02.����������� ������������������  Hadoop����������� ������������������  ECO����������� ������������������  System����������� ������������������  

Page 65: BigData, Hadoop과 Node.js

• 65

Hadoop����������� ������������������  ECO����������� ������������������  System����������� ������������������  Hadoop����������� ������������������  

http://blrunner.tistory.com/18

Page 66: BigData, Hadoop과 Node.js

• 66

Hadoop����������� ������������������  ECO����������� ������������������  System����������� ������������������  요소기술����������� ������������������  Hadoop����������� ������������������  

미래사회와 빅 데이터(Big Data)기술

Page 67: BigData, Hadoop과 Node.js

• 67

Zookeeper����������� ������������������  

http://zookeeper.apache.org/����������� ������������������  

분산����������� ������������������  환경에서����������� ������������������  서버들간에����������� ������������������  상호����������� ������������������  조정이����������� ������������������  필요한����������� ������������������  다양한����������� ������������������  서비스를����������� ������������������  제공하는����������� ������������������  시스템����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  첫째,����������� ������������������  하나의����������� ������������������  서버에만����������� ������������������  서비스가����������� ������������������  집중되지����������� ������������������  않도록,����������� ������������������  서비스를����������� ������������������  알맞게����������� ������������������  분산하여����������� ������������������  동시에����������� ������������������  

처리����������� ������������������  

둘째,����������� ������������������  하나의����������� ������������������  서버에서����������� ������������������  처리한����������� ������������������  결과를����������� ������������������  다른����������� ������������������  서버들과도����������� ������������������  동기화하여����������� ������������������  데이터의����������� ������������������  안정성을����������� ������������������  보장한다.����������� ������������������  

셋째,����������� ������������������  운영(active)����������� ������������������  서버가����������� ������������������  문제가����������� ������������������  발생해서����������� ������������������  서비스를����������� ������������������  제공할����������� ������������������  수����������� ������������������  없을����������� ������������������  경우,����������� ������������������  다른����������� ������������������  대기����������� ������������������  중인����������� ������������������  서버를����������� ������������������  운영서버로����������� ������������������  바꿔서����������� ������������������  서비스가����������� ������������������  중지����������� ������������������  없이����������� ������������������  제공되게����������� ������������������  해준다.����������� ������������������  

넷째,����������� ������������������  분산����������� ������������������  환경을����������� ������������������  구성하는����������� ������������������  서버들의����������� ������������������  환경설정을����������� ������������������  통합적으로����������� ������������������  관리해준다.����������� ������������������  

Hadoop����������� ������������������  

Page 68: BigData, Hadoop과 Node.js

• 68

Oozie����������� ������������������  

http://incubator.apache.org/oozie����������� ������������������  

하둡����������� ������������������  작업을����������� ������������������  관리하는����������� ������������������  워크플로우����������� ������������������  및����������� ������������������  코디네이터����������� ������������������  시스템.����������� ������������������  

자바����������� ������������������  서블릿����������� ������������������  컨테이너에서����������� ������������������  실행되는����������� ������������������  자바����������� ������������������  웹����������� ������������������  애플리케이션����������� ������������������  서버이며,����������� ������������������  MapReduce����������� ������������������  작업이나����������� ������������������  Pig����������� ������������������  작업����������� ������������������  같은����������� ������������������  특화된����������� ������������������  액션들로����������� ������������������  구성된����������� ������������������  워크����������� ������������������  플로우를����������� ������������������  제어.����������� ������������������  

����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

Page 69: BigData, Hadoop과 Node.js

• 69

HBase����������� ������������������  

http://hbase.apache.org����������� ������������������  

HDFS����������� ������������������  기반의����������� ������������������  칼럼����������� ������������������  기반����������� ������������������  데이터����������� ������������������  베이스.����������� ������������������  구글의����������� ������������������  BigTable����������� ������������������  논문을����������� ������������������  기반으로����������� ������������������  개발되어,����������� ������������������  실시간����������� ������������������  랜덤����������� ������������������  조회����������� ������������������  및����������� ������������������  업데이트가����������� ������������������  가능하며,����������� ������������������  각����������� ������������������  각의����������� ������������������  프로세스들은����������� ������������������  개인의����������� ������������������  데이터를����������� ������������������  비동기적으로����������� ������������������  업데이트할����������� ������������������  수����������� ������������������  있다.����������� ������������������  

단,����������� ������������������  MapReduce는����������� ������������������  일괄����������� ������������������  처리����������� ������������������  방식으로����������� ������������������  수행된다.����������� ������������������  ����������� ������������������  

트위터,����������� ������������������  야후,����������� ������������������  어도비����������� ������������������  같은����������� ������������������  해외����������� ������������������  업체들이����������� ������������������  HBase를����������� ������������������  사용하고����������� ������������������  있으며,����������� ������������������  국내에서는����������� ������������������  얼마����������� ������������������  전����������� ������������������  NHN이����������� ������������������  모바일����������� ������������������  메신저인����������� ������������������  라인에����������� ������������������  HBase를����������� ������������������  적용한����������� ������������������  시스템����������� ������������������  아키텍처를����������� ������������������  발표����������� ������������������  

����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

http://goo.gl/A1qy8

Page 70: BigData, Hadoop과 Node.js

• 70

Pig����������� ������������������  

http://pig.apache.org����������� ������������������  

복잡한����������� ������������������  MapReduce����������� ������������������  프로그래밍을����������� ������������������  대체할����������� ������������������  Pig����������� ������������������  Latin이라는����������� ������������������  자체����������� ������������������  언어를����������� ������������������  제공한다.����������� ������������������  MapReduce����������� ������������������  API를����������� ������������������  매우����������� ������������������  단순화시키고,����������� ������������������  SQL과����������� ������������������  유사한����������� ������������������  형태로����������� ������������������  설계되어,����������� ������������������  ����������� ������������������  SQL과����������� ������������������  유사하기만����������� ������������������  할����������� ������������������  뿐,����������� ������������������  기존����������� ������������������  ����������� ������������������  SQL����������� ������������������  지식을����������� ������������������  활용하는����������� ������������������  것이����������� ������������������  ����������� ������������������  어려운����������� ������������������  편이다.����������� ������������������  

야후에서����������� ������������������  개발되었으나����������� ������������������  현재는����������� ������������������  ����������� ������������������  아파치����������� ������������������  프로젝트에����������� ������������������  속해있다.����������� ������������������  ����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

http://goo.gl/8cxyI

Page 71: BigData, Hadoop과 Node.js

• 71

Hive����������� ������������������  

http://hive.apache.org����������� ������������������  

하둡����������� ������������������  기반의����������� ������������������  데이터웨어하우징용����������� ������������������  솔루션입니다.����������� ������������������  ����������� ������������������  

페이스북에서����������� ������������������  개발됐으며,����������� ������������������  ����������� ������������������  오픈����������� ������������������  소스로����������� ������������������  공개되며����������� ������������������  주목����������� ������������������  

SQL과����������� ������������������  매우����������� ������������������  유사한����������� ������������������  HiveQL����������� ������������������  제공����������� ������������������  

자바를����������� ������������������  모르는����������� ������������������  데이터����������� ������������������  분석가도����������� ������������������  ����������� ������������������  쉽게����������� ������������������  하둡����������� ������������������  데이터를����������� ������������������  분석할����������� ������������������  수����������� ������������������  ����������� ������������������  있게����������� ������������������  도와준다.����������� ������������������  ����������� ������������������  

HiveQL은����������� ������������������  내부적으로����������� ������������������  ����������� ������������������  MapReduce����������� ������������������  잡으로����������� ������������������  ����������� ������������������  변환되어����������� ������������������  실행된다.����������� ������������������  

Hadoop����������� ������������������  

http://goo.gl/2pwHi

Page 72: BigData, Hadoop과 Node.js

• 72

Mahout����������� ������������������  

http://mahout.apache.org����������� ������������������  

하둡����������� ������������������  기반으로����������� ������������������  데이터����������� ������������������  마이닝����������� ������������������  알고리즘을����������� ������������������  구현한����������� ������������������  오픈����������� ������������������  소스����������� ������������������  

현재����������� ������������������  분류����������� ������������������  (classification),����������� ������������������  클러스터링����������� ������������������  (clustering),����������� ������������������  추천����������� ������������������  및����������� ������������������  협업����������� ������������������  필터링����������� ������������������  (Recommenders/collaborative����������� ������������������  filtering),����������� ������������������  패턴����������� ������������������  마이닝����������� ������������������  (Pattern����������� ������������������  Mining),����������� ������������������  회귀����������� ������������������  분석����������� ������������������  (Regression),����������� ������������������  차원����������� ������������������  리덕션����������� ������������������  (Dimension����������� ������������������  reduction),����������� ������������������  진화����������� ������������������  알고리즘����������� ������������������  (Evolutionary����������� ������������������  Algorithms)����������� ������������������  등����������� ������������������  중요한����������� ������������������  알고리즘을����������� ������������������  지원하고����������� ������������������  있다.����������� ������������������  Mahout을����������� ������������������  그대로����������� ������������������  사용할����������� ������������������  수도����������� ������������������  있지만,����������� ������������������  자신의����������� ������������������  비즈니스����������� ������������������  환경에����������� ������������������  맞게����������� ������������������  최적화해서����������� ������������������  사용한다.����������� ������������������  

Hadoop����������� ������������������  

Page 73: BigData, Hadoop과 Node.js

• 73

HCatalog����������� ������������������  

http://incubator.apache.org/hcatalog����������� ������������������  

하둡으로����������� ������������������  생성한����������� ������������������  데이터를����������� ������������������  위한����������� ������������������  테이블,����������� ������������������  스토리지����������� ������������������  관리����������� ������������������  서비스����������� ������������������  

가장����������� ������������������  큰����������� ������������������  장점은����������� ������������������  하둡����������� ������������������  에코����������� ������������������  시스템들간의����������� ������������������  상호����������� ������������������  운용성����������� ������������������  이다.����������� ������������������  예를����������� ������������������  들어����������� ������������������  Hive에서����������� ������������������  생성한����������� ������������������  테이블이나����������� ������������������  데이터����������� ������������������  모델을����������� ������������������  Pig나����������� ������������������  MapReduce에서����������� ������������������  손쉽게����������� ������������������  이용할����������� ������������������  수가����������� ������������������  있다.����������� ������������������  ����������� ������������������  

이전에는����������� ������������������  상당한����������� ������������������  백엔드����������� ������������������  작업이����������� ������������������  필요했다.����������� ������������������  

Hadoop����������� ������������������  

http://goo.gl/9jwtf

Page 74: BigData, Hadoop과 Node.js

• 74

Avro����������� ������������������  

http://avro.apache.org����������� ������������������  

RPC(Remote����������� ������������������  Procedure����������� ������������������  Call)과����������� ������������������  데이터����������� ������������������  직렬화를����������� ������������������  지원하는����������� ������������������  프레임워크로����������� ������������������  JSON을����������� ������������������  이용해����������� ������������������  데이터����������� ������������������  형식과����������� ������������������  프로토콜을����������� ������������������  정의하며,����������� ������������������  작고����������� ������������������  빠른����������� ������������������  바이너리����������� ������������������  포맷으로����������� ������������������  데이터를����������� ������������������  직렬화한다.����������� ������������������  

Hadoop����������� ������������������  

http://goo.gl/8FMFm

Page 75: BigData, Hadoop과 Node.js

• 75

Chukwa����������� ������������������  

http://incubator.apache.org/chukwa����������� ������������������  

분산����������� ������������������  환경에서����������� ������������������  생성되는����������� ������������������  데이터를����������� ������������������  HDFS에����������� ������������������  안정적으로����������� ������������������  저장시키는����������� ������������������  플랫폼으로����������� ������������������  분산된����������� ������������������  각����������� ������������������  서버에서����������� ������������������  에이전트(agent)를����������� ������������������  실행하고,����������� ������������������  콜랙터(collector)가����������� ������������������  에이전트로부터����������� ������������������  데이터를����������� ������������������  받아����������� ������������������  HDFS에����������� ������������������  저장한다.����������� ������������������  콜렉터는����������� ������������������  100개의����������� ������������������  에이전트당����������� ������������������  하나씩����������� ������������������  구동되며,����������� ������������������  데이터����������� ������������������  중복����������� ������������������  제거����������� ������������������  등의����������� ������������������  작업은����������� ������������������  MapReduce로����������� ������������������  처리한다.����������� ������������������  ����������� ������������������  

야후에서����������� ������������������  개발됐으며,����������� ������������������  현재는����������� ������������������  아파치����������� ������������������  인큐베이션에����������� ������������������  포함����������� ������������������  

Hadoop����������� ������������������  

http://rocksea.tistory.com/59

Page 76: BigData, Hadoop과 Node.js

• 76

Flume����������� ������������������  

http://flume.apache.org/����������� ������������������  

Chukwa����������� ������������������  처럼����������� ������������������  분산된����������� ������������������  서버에����������� ������������������  에이전트가����������� ������������������  설치되고,����������� ������������������  에이전트로부터����������� ������������������  데이터를����������� ������������������  전달받는����������� ������������������  콜랙터로����������� ������������������  구성된다.����������� ������������������  ����������� ������������������  

차이점은����������� ������������������  전체����������� ������������������  데이터의����������� ������������������  흐름을����������� ������������������  관리하는����������� ������������������  마스터����������� ������������������  서버가����������� ������������������  있어서,����������� ������������������  데이터를����������� ������������������  어디서����������� ������������������  수집하고,����������� ������������������  어떤����������� ������������������  방식으로����������� ������������������  전송하고,����������� ������������������  어디에����������� ������������������  저장할����������� ������������������  지를����������� ������������������  동적으로����������� ������������������  변경할����������� ������������������  수가����������� ������������������  있다.����������� ������������������  ����������� ������������������  

클라우드데라에서����������� ������������������  개발됐으며,����������� ������������������  현재는����������� ������������������  아파치����������� ������������������  인큐베이션에����������� ������������������  포함되어����������� ������������������  있다.����������� ������������������  

Hadoop����������� ������������������  

Page 77: BigData, Hadoop과 Node.js

• 77

Scribe����������� ������������������  

https://github.com/facebook/scribe����������� ������������������  

페이스북에서����������� ������������������  개발한����������� ������������������  데이터����������� ������������������  수집����������� ������������������  플랫폼이며,����������� ������������������  Chukwa와는����������� ������������������  다르게����������� ������������������  데이터를����������� ������������������  중앙����������� ������������������  집중����������� ������������������  서버로����������� ������������������  전송하는����������� ������������������  방식이다.����������� ������������������  최종����������� ������������������  데이터는����������� ������������������  HDFS외에����������� ������������������  다양한����������� ������������������  저장소를����������� ������������������  활용할����������� ������������������  수����������� ������������������  있으며,����������� ������������������  설치와����������� ������������������  구성이����������� ������������������  쉽게����������� ������������������  다양한����������� ������������������  프로그램����������� ������������������  언어를����������� ������������������  지원한다.����������� ������������������  HDFS에����������� ������������������  저장하기����������� ������������������  위해서는����������� ������������������  JNI(Java����������� ������������������  Native����������� ������������������  Interface)를����������� ������������������  이용해야����������� ������������������  한다.����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

http://tedwon.com/display/dev/Facebook+Scribe

Page 78: BigData, Hadoop과 Node.js

• 78

Sqoop����������� ������������������  

http://sqoop.apache.org����������� ������������������  

대용량����������� ������������������  데이터����������� ������������������  전송����������� ������������������  솔루션이며,����������� ������������������  ����������� ������������������  2012/4월����������� ������������������  아파치의����������� ������������������  top-level����������� ������������������  ����������� ������������������  프로젝트가����������� ������������������  됐다.����������� ������������������  Sqoop은����������� ������������������  HDFS,����������� ������������������  ����������� ������������������  RDBMS,����������� ������������������  DW,����������� ������������������  NoSQL등����������� ������������������  다양한����������� ������������������  ����������� ������������������  저장소에����������� ������������������  대용량����������� ������������������  데이터를����������� ������������������  신속하게����������� ������������������  ����������� ������������������  전송할����������� ������������������  수����������� ������������������  있는����������� ������������������  방법을����������� ������������������  제공한다.����������� ������������������  ����������� ������������������  Oracle,����������� ������������������  MS-SQL,����������� ������������������  DB2����������� ������������������  등과����������� ������������������  같은����������� ������������������  ����������� ������������������  상용����������� ������������������  RDBMS와����������� ������������������  MySQL,����������� ������������������  ����������� ������������������  PostgresSQL과����������� ������������������  같은����������� ������������������  오픈소스����������� ������������������  ����������� ������������������  RDBMS등을����������� ������������������  지원한다.����������� ������������������  ����������� ������������������  

Hadoop����������� ������������������  

http://goo.gl/sn46m

Page 79: BigData, Hadoop과 Node.js

• 79

Hiho����������� ������������������  

https://github.com/sonalgoyal/hiho����������� ������������������  

Sqoop과����������� ������������������  같은����������� ������������������  대용량����������� ������������������  데이터����������� ������������������  전송����������� ������������������  솔루션이며,����������� ������������������  현재����������� ������������������  github에서����������� ������������������  공개되어����������� ������������������  있다.����������� ������������������  하둡에서����������� ������������������  데이터를����������� ������������������  가져오기����������� ������������������  위한����������� ������������������  SQL을����������� ������������������  지정할����������� ������������������  수����������� ������������������  있으며,����������� ������������������  JDBC����������� ������������������  인터페이스를����������� ������������������  지원한다.����������� ������������������  ����������� ������������������  

현재는����������� ������������������  Oracle과����������� ������������������  MySQL의����������� ������������������  데이터����������� ������������������  전송만����������� ������������������  지원한다.����������� ������������������  

Hadoop����������� ������������������  

http://nubetech.co/products/hiho

Page 80: BigData, Hadoop과 Node.js

• 80

Impala����������� ������������������  

https://github.com/cloudera/impala����������� ������������������  

클라우드데라의����������� ������������������  하둡����������� ������������������  기반의����������� ������������������  ����������� ������������������  실시간����������� ������������������  SQL����������� ������������������  query����������� ������������������  시스템.����������� ������������������  ����������� ������������������  

맵리듀스를����������� ������������������  사용하지����������� ������������������  않고,����������� ������������������  자체����������� ������������������  ����������� ������������������  개발한����������� ������������������  엔진을����������� ������������������  사용해����������� ������������������  빠른����������� ������������������  ����������� ������������������  성능을����������� ������������������  보여준다.����������� ������������������  Impala는����������� ������������������  ����������� ������������������  데이터����������� ������������������  조회를����������� ������������������  위한����������� ������������������  인터페이스����������� ������������������  로,����������� ������������������  HiveQL을����������� ������������������  사용한다.����������� ������������������  ����������� ������������������  수초����������� ������������������  내에����������� ������������������  SQL����������� ������������������  질의����������� ������������������  결과를����������� ������������������  ����������� ������������������  확인할����������� ������������������  수����������� ������������������  있으며,����������� ������������������  HBase와도����������� ������������������  ����������� ������������������  연동이����������� ������������������  가능하다.����������� ������������������  

Hadoop����������� ������������������  

http://goo.gl/3GEvu

Page 81: BigData, Hadoop과 Node.js

• 81

Tajo����������� ������������������  

http://tajo.incubator.apache.org����������� ������������������  

고려대학교����������� ������������������  정보통신대학����������� ������������������  컴퓨터학과����������� ������������������  DB연구실����������� ������������������  박사����������� ������������������  과정학생들이����������� ������������������  주도해서����������� ������������������  개발한����������� ������������������  하둡����������� ������������������  기반의����������� ������������������  DW����������� ������������������  시스템.����������� ������������������  2013년����������� ������������������  아파치����������� ������������������  재단의����������� ������������������  인큐베이션����������� ������������������  프로젝트로����������� ������������������  선정되었다.����������� ������������������  

데이터����������� ������������������  저장소는����������� ������������������  HDFS를����������� ������������������  사용하되,����������� ������������������  표준DB언어인����������� ������������������  SQL을����������� ������������������  통해����������� ������������������  실시간으로����������� ������������������  데이터를����������� ������������������  조회할����������� ������������������  수����������� ������������������  있다.����������� ������������������  Hive보다����������� ������������������  2~3배����������� ������������������  빠르며,����������� ������������������  클라우드데라의����������� ������������������  임팔라(Impala)와는����������� ������������������  비슷한����������� ������������������  속도를����������� ������������������  보여준다.����������� ������������������  임팔라가����������� ������������������  클라우드데라의����������� ������������������  하둡을����������� ������������������  써야����������� ������������������  하는����������� ������������������  제약에����������� ������������������  비해,����������� ������������������  특정����������� ������������������  업체����������� ������������������  솔루션에����������� ������������������  종속되지����������� ������������������  않는����������� ������������������  장점이����������� ������������������  있다����������� ������������������  

Hadoop����������� ������������������  

Page 82: BigData, Hadoop과 Node.js

6.����������� ������������������  Hadoop����������� ������������������  

03.����������� ������������������  Installation����������� ������������������  

Page 83: BigData, Hadoop과 Node.js

• 83

Prerequisites����������� ������������������  

Required����������� ������������������  SW����������� ������������������  

����������� ������������������  -����������� ������������������  Java����������� ������������������  1.6.x����������� ������������������  이상����������� ������������������  

����������� ������������������  -����������� ������������������  ssh와����������� ������������������  sshd����������� ������������������  

����������� ������������������  

Windows����������� ������������������  

����������� ������������������  -����������� ������������������  Cygwin����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

http://hadoop.apache.org/docs/stable/single_node_setup.html����������� ������������������  

Page 84: BigData, Hadoop과 Node.js

6.����������� ������������������  Hadoop����������� ������������������  

Single����������� ������������������  node����������� ������������������  Installation����������� ������������������  on����������� ������������������  Mac����������� ������������������  

Page 85: BigData, Hadoop과 Node.js

• 85

Hadoop����������� ������������������  mode����������� ������������������  

Hadoop����������� ������������������  runtime����������� ������������������  은����������� ������������������  아래����������� ������������������  세����������� ������������������  가지����������� ������������������  모드로����������� ������������������  가능.����������� ������������������  

����������� ������������������  

•  Standalone����������� ������������������  •  현재����������� ������������������  프로세스에서����������� ������������������  단독����������� ������������������  JVM으로����������� ������������������  시작,����������� ������������������  테스트����������� ������������������  &����������� ������������������  디버깅용����������� ������������������  

•  Pseudo-distributed����������� ������������������  mode����������� ������������������  •  하둡����������� ������������������  데몬이����������� ������������������  동작해서����������� ������������������  클러스터를����������� ������������������  시뮬레이션����������� ������������������  가능함����������� ������������������  

•  Fully����������� ������������������  distributed����������� ������������������  mode����������� ������������������  •  하둡����������� ������������������  데몬이����������� ������������������  여러����������� ������������������  컴퓨터에����������� ������������������  그룹으로����������� ������������������  구성����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

Page 86: BigData, Hadoop과 Node.js

• 86

Prerequisites����������� ������������������  on����������� ������������������  the����������� ������������������  OSX����������� ������������������  

XCode����������� ������������������  4.3.2����������� ������������������  

����������� ������������������  -����������� ������������������  명령라인����������� ������������������  도구를����������� ������������������  설치:����������� ������������������  ����������� ������������������  Xcode의����������� ������������������  Preferences����������� ������������������  메뉴로����������� ������������������  가서����������� ������������������  Downloads����������� ������������������  패널로����������� ������������������  갑니다.����������� ������������������  이곳에서����������� ������������������  'Command����������� ������������������  Line����������� ������������������  Tools'를����������� ������������������  설치합니다.����������� ������������������  

Java����������� ������������������  Developer����������� ������������������  for����������� ������������������  10.7����������� ������������������  

����������� ������������������  

ssh,����������� ������������������  sshd����������� ������������������  설치����������� ������������������  필요����������� ������������������  

����������� ������������������  

Homebrew����������� ������������������  

Hadoop����������� ������������������  

Hadoop����������� ������������������  설치����������� ������������������  ����������� ������������������  -����������� ������������������  http://goo.gl/yRCYp����������� ������������������  ����������� ������������������  -����������� ������������������  http://goo.gl/xsnff����������� ������������������  ����������� ������������������  -����������� ������������������  http://goo.gl/wljkC����������� ������������������  

Page 87: BigData, Hadoop과 Node.js

• 87

Homebrew����������� ������������������  

Mac����������� ������������������  OS����������� ������������������  X에����������� ������������������  기본으로����������� ������������������  포함되어����������� ������������������  있지����������� ������������������  않은����������� ������������������  UNIX����������� ������������������  도구들을����������� ������������������  유연하게����������� ������������������  설치����������� ������������������  및����������� ������������������  관리하게����������� ������������������  도와주는����������� ������������������  도구로,����������� ������������������  기존의����������� ������������������  MacPorts����������� ������������������  또는����������� ������������������  Fink에����������� ������������������  비해서����������� ������������������  여러모로����������� ������������������  패키지를����������� ������������������  설치,����������� ������������������  관리가����������� ������������������  편리.����������� ������������������  

����������� ������������������  

homebrew를����������� ������������������  다음과����������� ������������������  같이����������� ������������������  설치����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

homebrew����������� ������������������  doctor����������� ������������������  ����������� ������������������  명령을����������� ������������������  실행해����������� ������������������  이상없는지����������� ������������������  확인.����������� ������������������  

����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

$ ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)

$ brew doctor $ brew update

Homebrew����������� ������������������  설치����������� ������������������  ����������� ������������������  ����������� ������������������  -����������� ������������������  http://mxcl.github.io/homebrew/����������� ������������������  ����������� ������������������  -����������� ������������������  http://goo.gl/Uu7p8����������� ������������������  ����������� ������������������  

Page 88: BigData, Hadoop과 Node.js

• 88

Install����������� ������������������  Hadoop����������� ������������������  

install����������� ������������������  hadoop����������� ������������������  by����������� ������������������  brew����������� ������������������  

Hadoop����������� ������������������  

$ brew install hadoop ==> Downloading http://www.apache.org/dyn/closer.cgi?path=hadoop/core/hadoop-1.1.2/hadoop-1.1.2.tar.gz ==> Best Mirror http://apache.tt.co.kr/hadoop/core/hadoop-1.1.2/hadoop-1.1.2.tar.gz ####################################################################### 99.2% ######################################################################## 100.0% ==> Caveats In Hadoop's config file: /usr/local/Cellar/hadoop/1.1.2/libexec/conf/hadoop-env.sh $JAVA_HOME has been set to be the output of: /usr/libexec/java_home ==> Summary 🍺 /usr/local/Cellar/hadoop/1.1.2: 271 files, 78M, built in 49.1 minutes

$ hadoop version Hadoop 1.1.2 Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.1 -r 1440782 Compiled by hortonfo on Thu Jan 31 02:03:24 UTC 2013 From source with checksum c720ddcf4b926991de7467d253a79b8b

Page 89: BigData, Hadoop과 Node.js

• 89

Hadoop����������� ������������������  directories����������� ������������������  

Mac에서����������� ������������������  설치한����������� ������������������  Hadoop����������� ������������������  runtime은����������� ������������������  ����������� ������������������  

/usr/local/opt/hadoop����������� ������������������  ����������� ������������������  à����������� ������������������  ����������� ������������������  /usr/local/Cellar/hadoop/1.1.2/����������� ������������������  

����������� ������������������  

설정����������� ������������������  디렉토리����������� ������������������  

/usr/local/Cellar/hadoop/1.1.2/libexec/conf����������� ������������������  

����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

$HADOOP_HOME����������� ������������������  

Page 90: BigData, Hadoop과 Node.js

• 90

conf/hadoop-env.sh����������� ������������������  

맥에서����������� ������������������  “Unable����������� ������������������  to����������� ������������������  load����������� ������������������  realm����������� ������������������  info����������� ������������������  from����������� ������������������  SCDynamicStore”����������� ������������������  에러를����������� ������������������  방지하기����������� ������������������  위히����������� ������������������  아래����������� ������������������  라인을����������� ������������������  추가����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"

Page 91: BigData, Hadoop과 Node.js

• 91

conf/core-site.xml����������� ������������������  

기본����������� ������������������  설정����������� ������������������  

Hadoop����������� ������������������  

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>hadoop.tmp.dir</name> <value>/Users/${user.name}/hadoop-store</value> <description>A base for other temporary directories.</description> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:8020</value> </property> </configuration>

Page 92: BigData, Hadoop과 Node.js

• 92

conf/mapred-site.xml����������� ������������������  

기본����������� ������������������  설정����������� ������������������  

Hadoop����������� ������������������  

<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> <property> <name>mapred.tasktracker.map.tasks.maximum</name> <value>2</value> </property> <property> <name>mapred.tasktracker.reduce.tasks.maximum</name> <value>2</value> </property> </configuration>

Page 93: BigData, Hadoop과 Node.js

• 93

conf/hdfs-site.xml����������� ������������������  

기본����������� ������������������  설정����������� ������������������  

Hadoop����������� ������������������  

<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>

Page 94: BigData, Hadoop과 Node.js

• 94

SSH����������� ������������������  

설정한����������� ������������������  localhost����������� ������������������  를����������� ������������������  위한����������� ������������������  아래와����������� ������������������  같이����������� ������������������  ssh����������� ������������������  key����������� ������������������  필요����������� ������������������  

����������� ������������������  ����������� ������������������  -����������� ������������������  비밀키:����������� ������������������  ����������� ������������������  ~/.ssh/id_rsa����������� ������������������  

����������� ������������������  ����������� ������������������  -����������� ������������������  공개키:����������� ������������������  ~/.ssh/id_rsa.pub����������� ������������������  

����������� ������������������  

아래와����������� ������������������  같이����������� ������������������  키를����������� ������������������  생성����������� ������������������  할����������� ������������������  수����������� ������������������  있다.����������� ������������������  

Hadoop����������� ������������������  

$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/wanheecho/.ssh/id_rsa): …

Page 95: BigData, Hadoop과 Node.js

• 95

SSH����������� ������������������  접속����������� ������������������  허용����������� ������������������  

맥에서����������� ������������������  외부����������� ������������������  접속을����������� ������������������  허용해주어야����������� ������������������  한다.����������� ������������������  

“System����������� ������������������  Preferences”����������� ������������������  ->����������� ������������������  “Sharing”����������� ������������������  ����������� ������������������  에서����������� ������������������  ����������� ������������������  “Remote����������� ������������������  login”����������� ������������������  체크����������� ������������������  

����������� ������������������  

����������� ������������������  

그리고����������� ������������������  하둡간����������� ������������������  자동로그인을����������� ������������������  위해����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys

Page 96: BigData, Hadoop과 Node.js

• 96

SSH����������� ������������������  접속����������� ������������������  테스트����������� ������������������  

ssh����������� ������������������  로그인을����������� ������������������  테스트����������� ������������������  한다.����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

이렇게����������� ������������������  되면����������� ������������������  현재����������� ������������������  호스트를����������� ������������������  ~/.ssh/known_hosts����������� ������������������  에����������� ������������������  등록한다.����������� ������������������  

Hadoop����������� ������������������  

$ ssh localhost The authenticity of host 'localhost (::1)' can't be established. RSA key fingerprint is fb:cc:5d:08:ed:a2:d3:c2:7f:48:61:17:55:af:d1:86. Are you sure you want to continue connecting (yes/no)?

Page 97: BigData, Hadoop과 Node.js

• 97

hadoop����������� ������������������  start����������� ������������������  &����������� ������������������  stop����������� ������������������  

새로운����������� ������������������  DFS로����������� ������������������  namenode를����������� ������������������  포맷하고����������� ������������������  hadoop을����������� ������������������  singlenode로����������� ������������������  실행한다.����������� ������������������  

Hadoop����������� ������������������  

$ cd /usr/local/opt/hadoop $ ./bin/hadoop namenode –format $ ./bin/start-all.sh ./bin/start-all.sh starting namenode, logging to /usr/local/Cellar/hadoop/1.1.2/libexec/bin/../logs/hadoop-androidbee-namenode-gogangtaeui-MacBook-Air.local.out localhost: starting datanode, logging to /usr/local/Cellar/hadoop/1.1.2/libexec/bin/../logs/hadoop-androidbee-datanode-gogangtaeui-MacBook-Air.local.out …

Page 98: BigData, Hadoop과 Node.js

• 98

hadoop����������� ������������������  processes����������� ������������������  

Java에서����������� ������������������  제공하는����������� ������������������  jps����������� ������������������  를����������� ������������������  활용하면����������� ������������������  hadoop의����������� ������������������  프러세스����������� ������������������  상태를����������� ������������������  확인할����������� ������������������  수����������� ������������������  있다.����������� ������������������  

Hadoop����������� ������������������  

$ jps 7257 Jps 5795 NameNode 6062 JobTracker 5892 DataNode 5989 SecondaryNameNode 6159 TaskTracker

http://wiki.apache.org/hadoop/HowToDebugMapReducePrograms

Page 99: BigData, Hadoop과 Node.js

• 99

hadoop����������� ������������������  examing����������� ������������������  

제공되는����������� ������������������  예제로����������� ������������������  테스트����������� ������������������  해본다.����������� ������������������  

Hadoop����������� ������������������  

$ hadoop jar /usr/local/Cellar/hadoop/1.1.2/libexec/hadoop-examples-1.1.2.jar pi 10 100 Number of Maps = 10 Samples per Map = 100 Wrote input for Map #0 … Wrote input for Map #9 Starting Job 13/05/29 10:49:21 INFO mapred.FileInputFormat: Total input paths to process : 10 13/05/29 10:49:21 INFO mapred.JobClient: Running job: job_201305291048_0001 13/05/29 10:49:22 INFO mapred.JobClient: map 0% reduce 0% …13/05/29 10:49:52 INFO mapred.JobClient: map 100% reduce 100% 13/05/29 10:49:53 INFO mapred.JobClient: Job complete: job_201305291048_0001 ... Job Finished in 31.939 seconds Estimated value of Pi is 3.14800000000000000000

Page 100: BigData, Hadoop과 Node.js

• 100

hadoop����������� ������������������  examing����������� ������������������  

실행시����������� ������������������  ����������� ������������������  네임노드����������� ������������������  에러,����������� ������������������  ����������� ������������������  

Hadoop����������� ������������������  

$ hadoop jar /usr/local/Cellar/hadoop/1.1.2/libexec/hadoop-examples-1.1.2.jar pi 10 100 Number of Maps = 10 Samples per Map = 100 org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/androidbee/PiEstimator_TMP_3_141592654/in. Name node is in safe mode. The reported blocks 1 has reached the threshold 0.9990 of total blocks 1. Safe mode will be turned off automatically in 5 seconds.

Page 101: BigData, Hadoop과 Node.js

• 101

Verify����������� ������������������  hadoop����������� ������������������  instance����������� ������������������  

실행중인����������� ������������������  hadoop����������� ������������������  의����������� ������������������  인스턴스를����������� ������������������  확인����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

모니터링����������� ������������������  

����������� ������������������  http://locahost:50030����������� ������������������  ­–����������� ������������������  Name����������� ������������������  Node����������� ������������������  

����������� ������������������  http://localhost:50060����������� ������������������  -����������� ������������������  TaskTracker����������� ������������������  daemon����������� ������������������  

����������� ������������������  http://localhost:50070����������� ������������������  ­–����������� ������������������  Job����������� ������������������  Tracker����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

$ ps ax | grep hadoop | wc -l

Page 102: BigData, Hadoop과 Node.js

• 102

hadoop����������� ������������������  stop����������� ������������������  Hadoop����������� ������������������  

$ cd /usr/local/opt/hadoop $ $ ./bin/stop-all.sh stopping jobtracker localhost: stopping tasktracker stopping namenode localhost: stopping datanode localhost: stopping secondarynamenode

Page 103: BigData, Hadoop과 Node.js

6.����������� ������������������  Hadoop����������� ������������������  

Single����������� ������������������  node����������� ������������������  Installation����������� ������������������  on����������� ������������������  Ubuntu����������� ������������������  

Page 104: BigData, Hadoop과 Node.js

• 104

Ubuntu����������� ������������������  

java����������� ������������������  jdk����������� ������������������  설치����������� ������������������  

ssh,����������� ������������������  sshd����������� ������������������  설치����������� ������������������  

설치����������� ������������������  및����������� ������������������  설정����������� ������������������  

http://hadoop.apache.org/docs/stable/single_node_setup.html����������� ������������������  

����������� ������������������  

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/����������� ������������������  

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/����������� ������������������  

����������� ������������������  

http://anonymousbi.wordpress.com/2012/11/02/hadoop-beginners-tutorial-on-ubuntu/����������� ������������������  

Hadoop����������� ������������������  

Page 105: BigData, Hadoop과 Node.js

6.����������� ������������������  Hadoop����������� ������������������  

Hadoop����������� ������������������  with����������� ������������������  Node.js����������� ������������������  

Page 106: BigData, Hadoop과 Node.js

• 106

Another����������� ������������������  example����������� ������������������  

링크에����������� ������������������  있는����������� ������������������  예제����������� ������������������  데이터를����������� ������������������  이용한다.����������� ������������������  

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

$ hadoop dfs -copyFromLocal gutenberg/ ~/hadoop-store/gutenberg $ hadoop dfs -ls ~/hadoop-store/ $ hadoop dfs -ls ~/hadoop-store/gutenberg/ Found 3 items -rw-r--r-- 1 androidbee supergroup 674570 2013-05-29 12:50 /Users/androidbee/hadoop-store/gutenberg/pg20417.txt -rw-r--r-- 1 androidbee supergroup 1573150 2013-05-29 12:50 /Users/androidbee/hadoop-store/gutenberg/pg4300.txt -rw-r--r-- 1 androidbee supergroup 1423803 2013-05-29 12:50 /Users/androidbee/hadoop-store/gutenberg/pg5000.txt $ hadoop jar /usr/local/opt/hadoop/libexec/hadoop-examples-1.1.2.jar wordcount ~/hadoop-store/gutenberg ~/hadoop-store/gutenberg-output …

Page 107: BigData, Hadoop과 Node.js

• 107

Another����������� ������������������  example2����������� ������������������  Hadoop����������� ������������������  

$ hadoop jar /usr/local/opt/hadoop/libexec/hadoop-examples-1.1.2.jar wordcount ~/hadoop-store/gutenberg ~/hadoop-store/gutenberg-output 13/05/29 12:53:50 INFO input.FileInputFormat: Total input paths to process : 3 13/05/29 12:53:50 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 13/05/29 12:53:50 WARN snappy.LoadSnappy: Snappy native library not loaded 13/05/29 12:53:50 INFO mapred.JobClient: Running job: job_201305291048_0008 13/05/29 12:53:51 INFO mapred.JobClient: map 0% reduce 0% … 13/05/29 12:54:10 INFO mapred.JobClient: map 100% reduce 100% 13/05/29 12:54:11 INFO mapred.JobClient: Job complete: job_201305291048_0008 13/05/29 12:54:11 INFO mapred.JobClient: Counters: 26 13/05/29 12:54:11 INFO mapred.JobClient: Job Counters 13/05/29 12:54:11 INFO mapred.JobClient: Launched reduce tasks=1 13/05/29 12:54:11 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=18430 … 13/05/29 12:54:11 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=10487 13/05/29 12:54:11 INFO mapred.JobClient: File Output Format Counters 13/05/29 12:54:11 INFO mapred.JobClient: Bytes Written=880838

Page 108: BigData, Hadoop과 Node.js

• 108

Another����������� ������������������  example3����������� ������������������  

결과를����������� ������������������  확인한다.����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Hadoop����������� ������������������  

$ hadoop dfs -ls ~/hadoop-store/gutenberg-output Found 3 items -rw-r--r-- 1 androidbee supergroup 0 2013-05-29 12:54 /Users/androidbee/hadoop-store/gutenberg-output/_SUCCESS drwxr-xr-x - androidbee supergroup 0 2013-05-29 12:53 /Users/androidbee/hadoop-store/gutenberg-output/_logs -rw-r--r-- 1 androidbee supergroup 880838 2013-05-29 12:54 /Users/androidbee/hadoop-store/gutenberg-output/part-r-00000 $ $ hadoop dfs -cat ~/hadoop-store/gutenberg-output/part-r-00000 $ mkdir ~/tmp/gutenberg-output $ hadoop dfs -getmerge ~/hadoop-store/gutenberg-output ~/tmp/gutenberg-output $ head ~/tmp/gutenberg-output/gutenberg-output "(Lo)cra" 1 "1490 1 "1498," 1 "35" 1 "40," 1 "A 2 "AS-IS". 1 "A_ 1 "Absoluti 1 "Alack! 1

Page 109: BigData, Hadoop과 Node.js

• 109

example����������� ������������������  for����������� ������������������  NodeJS����������� ������������������  

아래����������� ������������������  코드를����������� ������������������  ~/tmp/mapper.js����������� ������������������  로����������� ������������������  저장한다.����������� ������������������  이����������� ������������������  프로그램은����������� ������������������  앞의����������� ������������������  gutenberg����������� ������������������  텍스트를����������� ������������������  표준입력을����������� ������������������  읽어����������� ������������������  ‘단어’로����������� ������������������  분리해서����������� ������������������  ‘단어’����������� ������������������  목록의����������� ������������������  개수를����������� ������������������  출력해����������� ������������������  준다.����������� ������������������  

Hadoop����������� ������������������  

#!/usr/bin/node var stdin = process.stdin; var stdout = process.stdout; var data = ''; function processLine(line) { if(line && line.trim().length > 0) { var s = line.trim().split(' '); for(var i = 0; i < s.length; ++i) { stdout.write(s[i] + '\t1\n'); } } } // 계속…

http://rabrown.net/hadoop-word-count-streaming-example-with-nodejs

node����������� ������������������  경로를����������� ������������������  입력한다.����������� ������������������  

Page 110: BigData, Hadoop과 Node.js

• 110

example����������� ������������������  for����������� ������������������  NodeJS(2)����������� ������������������  

표준입력의����������� ������������������  키보드����������� ������������������  입력을����������� ������������������  문자로����������� ������������������  구분해����������� ������������������  준다.����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

실행����������� ������������������  권한으로����������� ������������������  변경해����������� ������������������  준다.����������� ������������������  

Hadoop����������� ������������������  

//(이어서) stdin.setEncoding('utf8'); stdin.resume(); stdin.on('data', function(chunk) { data += chunk; data = data.replace(/\r\n/g, '\n'); while(data.indexOf('\n') > -1) { var i = data.indexOf('\n') + 1; processLine(data.slice(0,i)); data=data.slice(i); } }); stdin.on('end', function() { processLine(data); });

$chmod +x ~/tmp/mapper.js

Page 111: BigData, Hadoop과 Node.js

• 111

example����������� ������������������  for����������� ������������������  NodeJS(3)����������� ������������������  

~/tmp/reducer.js����������� ������������������  로����������� ������������������  코드를����������� ������������������  저장한다.����������� ������������������  

Hadoop����������� ������������������  

#!/usr/bin/node var stdin = process.stdin; var stdout = process.stdout; function processLine(line) { if(line && line.trim().length > 0) { var s = line.trim().split('\t'); if(s.length == 2) { var w = s[0].trim(); var c = parseInt(s[1]); if(!isNaN(c)) { if(cw == w) { cc += c; } else { if(cw) { stdout.write(cw + '\t' + cc + '\n'); } cw = w; cc = c; } } } } }

mapper.js의����������� ������������������  결과를����������� ������������������  읽어����������� ������������������  최종����������� ������������������  단어����������� ������������������  개수를����������� ������������������  출력해����������� ������������������  준다.����������� ������������������  

node����������� ������������������  경로를����������� ������������������  입력한다.����������� ������������������  

Page 112: BigData, Hadoop과 Node.js

• 112

example����������� ������������������  for����������� ������������������  NodeJS(4)����������� ������������������  Hadoop����������� ������������������  

//(이어서) var data = ''; var cw = null; var cc = 0; stdin.setEncoding('utf8'); stdin.resume(); stdin.on('data', function(chunk) { data += chunk; data = data.replace(/\r\n/g, '\n'); while(data.indexOf('\n') > -1) { var i = data.indexOf('\n') + 1; processLine(data.slice(0,i)); data=data.slice(i); } }); stdin.on('end', function() { processLine(data); stdout.write(cw + '\t' + cc + '\n'); });

$chmod +x ~/tmp/reducer.js

Page 113: BigData, Hadoop과 Node.js

• 113

example����������� ������������������  for����������� ������������������  NodeJS(5)����������� ������������������  Hadoop����������� ������������������  

$echo "foo foo quux labs foo bar quux" | ~/tmp/mapper.js $echo "foo foo quux labs foo bar quux" | /home/hduser/mapper.js | sort -k1,1 | /home/hduser/reducer.js $ hadoop jar /usr/local/opt/hadoop/libexec/contrib/streaming/hadoop-*streaming*.jar -file ~/tmp/mapper.js -mapper ~/tmp/mapper.js -file ~/tmp/reducer.js -reducer ~/tmp/reducer.js -input ~/hadoop-store/gutenberg/* -output ~/tmp/gutenberg-output

http://hadoop.apache.org/docs/r1.1.2/streaming.html

Page 114: BigData, Hadoop과 Node.js

• 114

example����������� ������������������  for����������� ������������������  NodeJS(6)����������� ������������������  

다시����������� ������������������  실행해����������� ������������������  보려면����������� ������������������  실행한����������� ������������������  결과를����������� ������������������  제거한다.����������� ������������������  

Hadoop����������� ������������������  

$ hadoop dfs -rmr ~/tmp/gutenberg-output

Page 115: BigData, Hadoop과 Node.js

• 115

Page 116: BigData, Hadoop과 Node.js

감사합니다.����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  BigData와����������� ������������������  Hadoop에����������� ������������������  대해����������� ������������������  질문을����������� ������������������  해주십시요.����������� ������������������  ����������� ������������������