728x90

hadoop 유튜브 영상 참고하여 정리한 내용입니다.

 

1. 하둡의 탄생과 생태계의 활용

하둡을 배워야 하는이유

  • 데이터 홍수의 시대에서 하둡은 비정형 데이터를 포함한 빅데이터를 다루기 가장 적절한 플랫폼
  • 하둡 마켓의 성장 / 하둡 엔지니어의 수요 증가 - 국내에서는 초반에는 대기업 위주였으나, 최근에는 많은 기업에서 활용 중
  • 하둡이 어려운 이유는 단순히 SW기술 뿐 아니라 TA(아키텍쳐, 인프라 등) 지식도 필요

하둡의 등장 배경

  • 많은 양의 데이터를 처리하기 위한 분산병렬처리 아키텍쳐 필요에 의해
  • 맵리듀스라는 빅 데이터 분산 처리 알고리즘을 탑재한 하둡 등장

  • 분산 파일시스템과 분산 파일 시스템에 저장된 데이터를 분산 병렬 처리가 가능한 맵리듀스라는 프레임웤이 내장된 것이 하둡이다.

활용

  • java로 플랫폼이 이루어져 있으므로, 기본적으로 java 사용, 혹은 python 등 다른언어도 지원

 

2. 하둡에 대한 간략한 개념 정리(참고)

하둡은 여러 개의 컴퓨터를 하나로 묶어 대용량 데이터를 처리하는 기술로,

수천 대의 분산된 x86 장비에 대용량 파일을 저장할 수 있는 기능을 제공하는 분산파일 시스템(HDFS)과,

저장된 분산 파일을 분산된 서버의 CPU와 메모리 자원을 이용하여 빠르게 분석하는 맵리듀스 플랫폼(MapReduce)으로 구성되어짐.

 

하둡은 아파치 루씬 창업자인 더그 처팅이 2006년 야후 엔지니어로 일하면서 개발되었으며, 오픈소스로 공개되어 여러 개발자들이 자유롭게 활용하며 크게 발전되고 있다.

실제로 페이스북은 데이터의 일부를 하둡에 저장하는데, 그 양은 약 30PB로 미국 내 도서관에 저장된 정보의 3배에 이른다.

페이스북은 대용량의 사진 데이터를 약 2천여 개의 서버가 데이터를 처리하며, 사용자가 이미지를 업로드하거나 검색할 수 있게 해준다.

 

즉 하둡은 간단한 프로그래밍 모델을 사용하여 여러 대의 컴퓨터 클러스터에서 대규모 데이터 세트를 분산처리할 수 있게 해주는 프레임워크이다.

단일 서버에서 수천 대의 머신으로 확장할 수 있도록 설계되어 있다.

일반적으로 하둡 분산처리시스템(HDFS)과 맵리듀스(MapReduce) 프레임워크로 시작되었으나, 여러 데이터 저장, 실행 엔진, 프로그래밍 및 데이터 처리 같은 하둡 생태계 전반을 포함하는 의미로 확장, 발전되고 있다.

Hive / Presto

hive로 구조화 데이터를 작성할 때는 외부 테이블을 지정하여 참고한 특정 파일에 테이블이 존재하는 것 처럼 읽어들인다.
이런 식으로 데이터 베이스처럼 데이터를 내부로 가지고 오지 않아도 텍스트 파일을 그대로 집계할 수 있다.
즉 데이터를 그 자리에서 바로 집계할 수 있는 것이다. 집계과정에서의 시간을 절약할 수 있다.
그러나 이는 비효율적이다. 쿼리를 실행할 때 마다 텍스트를 읽어들여야 하기 때문에 매우 느리다. → metadata storage

따라서 읽어들이는 데이터 양을 의식하면서 쿼리를 작성해야 하며,
작은 쿼리를 여러번 실행하는 대화형 데이터 처리에는 presto가 적합하다.

presto는 보통 hive 메타스토어에 등록된 테이블을 가져올 수 있으므로 hive에서 만든 구조화 데이터를
좀 더 집계하는 목적에 적합하다. (물론 다른 데이터 소스도 참고할 수 있다.)
presto는 읽기와 코드 실행을 병렬 처리한다. 디스크에 쓰기작업을 하지 않고 메모리만을 사용한다.
728x90

+ Recent posts