하둡 책 내용 실습 - 정리는 천천히 하겠습니다.


깃허브 실습 소스 및 정리 문서

'Hadoop - Infomation' 카테고리의 다른 글

[Hadoop] 하둡이란?  (2) 2017.07.21
[Hadoop] 빅데이터란?  (0) 2017.07.17

[Hadoop]

"시작하세요! 하둡 프로그래밍 - 위키북스"를 기준으로 작성된 글 입니다.


 - 간략 목차

 1. 하둡이란?

 2. 왜 하둡인가?

 3. 하둡 에코시스템

 4. 하둡에 대한 오해


 1. 하둡이란?


  : 구글이 논문으로 발표한 GFS(Google File System)와 맵리듀스(MapReduce)를 2005년에 더그 커팅(Doug Cutting)이 구현한 결과물이다.


  : 자바 기반의 오픈소스 프레임워크


  : 분산 파일 시스템인 HDFS(Hadoop Distributed File System)에 데이터를 저장하고, 분산 처리 시스템인 맵리듀스를 이용해 처리한다.


 2. 왜 하둡인가?


  : 정형 데이터의 경우 기존의 관계형 데이터베이스(RDBMS)에 저장할 수 있지만 웹 로그 같은 비정형 데이터를 RDBMS에 저장하기에는 데이터 크기가 너무 크다.

    상용 RDBMS가 설치되는 곳은 대부분 고가의 장비인데, 데이터를 감당하기 위해 무한정 스토리지를 늘릴 수도 없다.


  : 이에 반해 하둡은 오픈소스 프로젝트이기에 소프트웨어 라이선스 비용에 대한 부담이 없다.


  : 또한 값비싼 유닉스 장비를 사용하지 않고, 리눅스 서버면 얼마든지 하둡을 설치해서 운영할 수 있다. 데이터 저장 용량이 부족할 경우, 필요한 만큼 리눅스 서버만 추가 하면 된다.


  : 하둡은 여러 대의 서버에 데이터의 복제본을 저장하고, 데이터가 저장된 각 서버에서 동시에 데이터를 처리하기 때문에
   데이터의 유실이나 장애가 발생했을 때도 데이터 복구가 가능하다.


 3. 하둡 에코시스템


- 코디네이터

  : Zookeeper


 - 리소스 관리

  : YARN

  : Mesos


 - 데이터 저장

  : HBase

  : Kudu


 - 데이터 수집

  : Chukwa

  : Flume

  : Scribe

  : Sqoop

  : Hiho

  : Kafka


 - 데이터 처리

  : Pig

  : Mahout

  : Spark

  : Impala

  : Presto

  : Hive

  : Tajo


 - 워크플로우 관리

  : Oozie

  : Airflow

  : Azkaban

  : Nifi

 

 - 데이터 시각화

  : Zeppelin


 - 데이터 직렬화

  : Avro

  : Thrift


 4. 하둡에 대한 오해

  - RDBMS를 대체 할 수 있다 !?

   : 하둡은 기존 RDBMS를 대체하지 않는다. 오히려 RDBMS와 상호보완적인 특성을 띠고 있다.

   

   : BI(Business Intelligence)나 OLAP(On-line Analytical Processing) 시스템을 사용하는 기업은 분석을 위한 데이터를 처리하기 위해 ETL 과정을 거치게 된다.


   : ETL(Extraction, Transformation, Loading)이란 RDBMS나 로그 파일 등 다양한 데이터 소스로부터 필요한 데이터를 추출(Extraction)하고, 변환(Transformation)한 후 DW(Data Warehouse) 혹은 DM(Data Mart)에 전송과 적재(Loading)하는 과정을 의미한다.


  : ETL은 자체적으로 셸 스크립트나 SQL 문을 이용해 진행하거나, DataStage 같은 상용 솔루션을 이용해 진행한다. 하둡은 이러한 ETL 과정에 도움을 줄 수 있다.


  : 하지만 하둡은 트랜잭션이나 무결성이 반드시 보장돼야 하는 데이터를 처리하는 데 적합하지 않다.

    그 이유는 하둡은 배치성으로 데이터를 저장하거나 처리하는 데 적합한 시스템으로 구성돼 있기 때문이다.

    그래서 데이터 무결성이 중요한 데이터는 트랜잭션 별로 무결성을 보장하는 기존 RDBMS에서 처리하고, 하둡은 배치성으로 데이터를 저장하고, 처리해야 한다.


  : 하둡이 실시간 처리가 절대로 불가능한 것은 아니다. 스크라이브나 플럼 같은 솔루션을 통해 데이터를 실시간으로 HDFS에 저장하고,  H베이스를 이용해 HDFS에 저장된 데이터를 실시간으로 접근하면 된다.


 - 하둡은 NoSQL이다 !?

  : 하둡이 RDBMS에 속하는 것은 아니지만 NoSQL의 핵심 기능인 데이터베이스 시스템의 역할을 수행하는 것도 아니다.

'Hadoop - Infomation' 카테고리의 다른 글

[Hadoop] 하둡 실습  (0) 2017.09.01
[Hadoop] 빅데이터란?  (0) 2017.07.17

[빅 데이터 - BigData]

"시작하세요! 하둡 프로그래밍 - 위키북스"를 기준으로 작성된 글 입니다.


간략 목차

 1. 빅데이터의 개념

 2. 빅데이터의 3대 요소


 1. 빅데이터의 개념


  - 데이터의 규모에 초점을 맞춘 정의

   : 기존 데이터베이스 관리도구의 데이터 수집, 저장, 관리, 분석하는 역량을 넘어서는 데이터

    "맥킨지 2011년 5월"


  - 업무 수행 방식에 초점을 맞춘 정의

   : 다양한 종류의 대규모 데이터로부터 저렴한 비용으로 가치를 추출하고, 데이터의 빠른 수집, 발굴, 분석을 지원하도록 고안된 차세대 기술 및 아키텍처

    " IDC 2011년 6월"


 2. 빅데이터의 3대 요소


  - 크기(Volume)

   : 비즈니스 특성에 따라 다를 수 있지만 일반적으로 수십 테라바이트 혹은 수십 페타바이트 이상이 빅데이터에 해당한다.


   : 이러한 빅데이터는 기존 파일 시스템에 저장하기 어려울뿐더러 데이터 분석을 위해 사용하는 기존 데이터웨어하우스(DW; Data warehouse)

     같은 솔루션에서 소화하기 어려울 정도로 급격하게 데이터의 양이 증가하고 있다.


   : 이러한 문제를 극복하려면 확장 가능한 방식으로 데이터를 저장하고 분석하는 분산 컴퓨터 기법으로 접근해야 한다.


   : 현재 분산 컴퓨팅 솔루션으로는 구글의 GFS와 아파치의 하둡이 있고, 

     대용량 병렬 처리 데이터베이스로는 EMC의 GreenPlum, HP의 Vertica, IBM의 Netezza, 테라데이터의 Kickfire 등이 있다.


  - 속도(Velocity)

   : 데이터의 생산, 저장, 유통, 수집, 분석이 실시간으로 처리


   : 수집된 대량의 데이터를 다양한 분석 기법과 표현 기술로 분석해야 하고, 장기적으로 전략적인 차원에서의 접근을 위해

     데이터 마이닝, 기계 학습, 자연어 처리, 패턴 인식을 사용한 분석 처리


  - 다양성(Variety)

   : 데이터 정형화의 종류에 따라 정형(structed), 반정형(semi-structured), 비정형(unstructured)으로 나눌 수 있다.


   : 정형 데이터는 정형화된 데이터로, 고정된 필드에 저장되는 데이터 (일정한 형식을 갖추고 저장되는 데이터)


   : 반정형 데이터는 고정된 필드로 저장돼 있지는 않지만 XML이나 HTML 같이 메타데이터나 스키마 등을 포함하는 데이터


   : 비정형 데이터는 고정된 필드에 저장돼 있지 않은 데이터

    유튜브 업로드 동영상 데이터, SNS나 블로그에 저장하는 데이터, 유무선 전화기에서 발생하는 통화 내용 등 다양한 비정형 데이터



 ∴ 빅데이터는 이러한 비정형 데이터도 처리할 수 있는 능력을 갖춰야 한다.




'Hadoop - Infomation' 카테고리의 다른 글

[Hadoop] 하둡 실습  (0) 2017.09.01
[Hadoop] 하둡이란?  (2) 2017.07.21

+ Recent posts