Skip to content

하둡 #
Find similar titles

Structured data

Category
Big Data

하둡(Hadoop)이란? #

  • 대용량 데이터를 분산 처리할 수 있는 자바기반의 오픈소스 프레임워크이다. 구글이 나오면서 굉장히 많은 데이터를 가져온 사례가 있었다. 구글에서의 데이터들이 빅데이터가 되었으나, 빅데이터를 분석하고 처리하는 프레임워크가 존재하지 않았다. 그래서 구글이 생각한게 데이터를 모아서 처리할 수 있는 프레임워크가 필요하다고 생각했고, 실제 빅데이터를 처리할 수 있는 프레임워크를 만들었으나, 구글은 그 소스를 오픈하지 않았다. 반면, 아파치는 전세계 공개 소프트웨어를 생산하는 비영리 조직이고 구글의 방식을 따라 아파치 그룹에서 제공한 오픈소스 프로젝트이다.
  • 하둡이 인기가 있는 이유?
    • 분산 프로그래밍에 대한 IT업계에서의 요구를 충족시켜주는 software이기 때문
  • 그렇다면 분산 프로그래밍이 대체 무엇인가?
    • 하드디스크 드라이브의 저장 용량은 지난 수년 동안 엄청나게 증가한 반면, 엑세스 속도는 그에 미치지 못하였다.
    • 1990년 전체드라이브를 읽어오는 시간이 5분이라면, 20년이 지난 현재 1테라바이트 저장공간은 2시간 반 이상이 걸린다.
  • 시간을 줄이기 위한 최고의 방법은?
    • 한번에 여러 디스크로부터 데이터를 읽는 것.
      • 100개의 드라이브가 있고, 각 드라이브는 데이터의 100분의 1을 저장했다고 가정해보자. 병렬로 동작한다면 우리는 2분 내에 데이터를 읽을 수 있다.
      • 다시 말해 하둡은 HDFS(Hadoop Distributed File System)라는 데이터 저장소와 맵리듀스(MapReduce)라는 분석 시스템을 통해 분산 프로그래밍을 수행하는 프레임워크인 것이다.
  • 그런데 왜 하둡을 사용하는가?
    • 한마디로 RDBMS는 비싸고 하둡은 저렴하기 때문이다.
    • RDBMS는 빅데이터의 대용량 데이터를 감당하기엔 비용이 너무 크다.
    • 한 예로, 2008년 뉴욕타임즈의 130년 분량의 신문기사 1,100만 페이지를 하둡을 이용해 하루만에 200만원의 비용을 들여 PDF로 변환하였다. 이는 일반 서버로 진행했을 경우, 약 14년이 소요되는 작업이였다.
    • 이렇듯 하둡은 분산 컴퓨팅 방식을 이용해서 저렴한 구축 비용과 비용대비 빠른 데이터 처리, 그리고 장애를 대비한 특성을 갖추고 있으므로 사용한다.

HDFS(Hadoop Distributed File System) #

수십 테라바이트 또는 페타바이트 이상의 대용량 파일을 분산된 서버에 저장하고, 그 저장된 데이터를 빠르게 처리할 수 있게 하는 파일 시스템이다. 또한, 저사양의 서버를 이용해서 스토리지를 구성할 수 있어 기존의 대용량 파일시스템(NAS, DAS, SAN 등)에 비해 장점을 가진다. HDFS는 블록 구조의 파일 시스템이다. 파일을 특정크기의 블록으로 나누어 분산된 서버에 저장된다. 블록크기는 64MB에서 하둡 2.0부터는 128M로 증가되었다.

하둡의 특징 #

- Distributed : 수십만대의 컴퓨터에 자료 분산 저장 및 처리
- Scalable : 용량이 증대되는 대로 컴퓨터 추가
- Fault-tolerant : 하나 이상의 컴퓨터가 고장나는 경우에도 시스템이 정상 동작
- Open source : 공개 소프트웨어

Image

하둡 에코 시스템 #

하둡에는 다양한 에코 시스템이 존재한다. 여기서 에코 시스템이란 중앙시스템, 여기에서는 하둡을 가리킨다. 중앙화된 시스템에 여러 회사들이 가져다 쓸 때 활용성을 더 높이기 위해 여러가지 소프트웨어가 추가된 시스템을 가지고 에코시스템이라고 한다. 어떤 소프트웨어가 발전하려면 이러한 에코시스템이 많이 존재하는 것이 중요하다. 하둡이라는 분산처리 시스템을 중심으로 많은 에코시스템이 존재한다. 대표적으로 Hbase, Solr, Zookeeper, Hive 등의 시스템이 그 예이다.

Image

실제 우리가 하둡시스템을 프로그래밍 할 때 java나 scala를 사용해서 프로그래밍을 하게된다. 이때 프로그래머들은 하둡 시스템을 쓸 수 있지만, 일반 유저들은 하둡시스템을 쓸 때, java, scala를 써서 사용하기가 어렵기 때문에, 그 중간에 echo 시스템이 일반 사용자들의 사용성을 좋게 한다.

Image

하둡과 빅 데이터와의 관계 #

  • 하둡은 대량으로 확장 가능하므로, 빅데이터 워크로드를 처리하는데 주로 사용한다. 하둡 클러스터의 처리 성능을 향상하려면, 요구에 맞춰 필요한 CPU 및 메모리 리소스가 있는 서버를 추가해야 한다.
  • 하둡은 컴퓨팅 분석 워크로드를 병렬로 처리하면서 동시에 높은 수준의 내구성과 가용성을 제공한다. 처리의 가용성, 내구성 및 확장성이 조합된 하둡은 빅데이터 워크로드에 아주 적합하다.

Incoming Links #

Related Data Sciences #

0.0.1_20140628_0