본문 바로가기

Java

hadoop - 하둡(Hadoop)이란 무엇인가?

원문: http://kwangshin.pe.kr/blog/2012/06/15/%ED%95%98%EB%91%A1hadoop%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80/


요즘 가장 이슈가 되는 프레임웍 중에 하나가 하둡(Hadoop)이 아닐까 싶다. 하둡이 무엇이고, 왜 탄생하게 되었는지 알아보도록 하자. 아무래도 이런 확실한 정보들을 얻기에는 공식 홈페이지가 가장 큰 도움이 된다. 여기에서 언급하는 대부분의 정보도 하둡 공식 홈페이지인 Apache™ Hadoop™에 있는 정보들을 기반으로 하고 있다.

아차피 하둡( Apache™ Hadoop™)이란 무엇인가?

아파치(Apache)에서 진행하고 있는 아파치 하둡 프로젝트는 안정적이이서 신뢰할 수 있고(reliable)확장이 용이하며(scalable),  분산 컴퓨팅(distributed computing) 환경을 지원하는 오픈 소스(open-source) 소프트웨어를 개발하는 프로젝트이다. 이 세가지 특징을 잘 기억해 두길 바란다. 인터넷이 발전하면서 "어떻게 사용하는지 아는 것(know-how)"을 찾는 것은 그렇게 어렵지 않은 것 같다. 하지만 전문가가 되기 위해서는 이제 "왜 만들어졌는지 아는 것(know-why)"이 더 중요해 지는 것 같다. 하둡이 왜 시작되었는지 알 수 있는 세 가지가 여기서 이야기 하고 있는 신뢰성, 확장성, 분산 컴퓨팅 지원이다.

아파치 하둡 소프트웨어 라이브러리(library)는 방대한 양의 데이터가 간결한 프로그래밍 모델을 이용하여 여러대의 컴퓨터로 이루어진 클러스터(cluster)에서 분산 처리(distributed processing)될 수 있도록 도와주는 프레임웍(framework)이다.  아파치 하둡은 처리 장치와 기억 장치를 가지는 하나의 컴퓨터에서 처리되던 방대한 작업들을 수천대의 컴퓨터로 작업을 분산해서 처리할 수 있는 확장성을 제공하기 위해서 설계되었다. 또한 고가용성(high-availability)을 지원하기 위해서 하드웨어에 의존했던 기존의 방식을 탈피하여, 라이브러리 자체가 하드웨어가 아닌 애플리케이션에서 에러를 발견하고 적합한 조치를 취할 수 있도록 설계되었다.

아파치 하둡에는 다음과 같은 3개의 하위 프로젝트들이 있다.

  • Hadoop Common(하둡 커먼): 다른 하둡 하위 프로젝트들에서 공통으로 사용되는 유틸리티들을 포함하고 있다.
  • Hadoop Distributed File System (HDFS™)(하둡 분산 파일 시스템): 애플리케이션 데이터에 접근할 때 높은 처리량을 지원하는 분산 파일 시스템이다.
  • Hadoop MapReduce(하둡 맵리듀스): 컴퓨터 클러스터에서 대용량 데이터의 분산 처리를 위한 소프트웨어 프레임웍이다.

또한 아파치는 하둡과 관련있는 다음과 같은 프로젝들도 지원하고 있다.

  • Avro™(아브로): 데이터 직렬화(serialization)를 지원하는 시스템이다.
  • Cassandra™(카산드라): 하나의 에러 때문에 전체 시스템이 정지(SPoF: Single Point of Failure)되지 않도록 설계된 확장 가능한 멀티-마스터(multi-master)를 가지는 데이터베이스이다.
  • Chukwa™(척와): 대용량 분산 시스템을 관리하기 위해서 만들어진 데이터를 수집, 저장, 관리, 분석하는 시스템이다.
  • HBase™(H베이스): 대용량 데이터베이스 테이블을 위한 구조적 데이터 저장 공간을 지원하는 확장가능한 분산 데이터베이스이다.
  • Hive™(하이브): 데이터 요약(summarization)과 애드훡(ad hoc) 쿼리를 지원하는 데이터 웨어하우스 인프라스트럭처(infrastructure)이다.
  • Mahout™(마훗): 확장 가능한 머신 러닝(machine learning)과 데이터 마이닝(data mining)을 위한 라이브러리이다.
  • Pig™(피그): 병렬 계산(parallel computation)을 위한 고수준(high-level) 데이터-플로우(data-flow) 언어와 실행 프레임웍이다.
  • ZooKeeper™(주키퍼): 분산 애플리케이션을 위한 고성능의 조정 및 관리(coordination) 서비이스이다.

하둡 다운로드

아파치 하둡 릴리즈 페이지로 가면 하둡을 다운로드할 수 있다.

그럼 누가 하둡을 사용하나?

많은 분야에서 여러 회사들과 단체들이 연구 목적으로 그리고 실제 개발 목적으로 하둡을 사용하고 있다. 하둡PoweredBy 위키 페이지에 가면 현재 어떤 회사들과 단체들에서 하둡을 사용하고 있는지 볼 수 있다. 또한 현재 하둡을 사용하고 있다면 위키 페이지에 회사나 단체 이름을 추가해 주기 바란다.

하둡이란 이름이 왜 붙었을까? 하둡을 맨 처음 만든 더그 컷팅(Doug Cutting)이 아들이 가지고 놀고 있던 노란 코끼리 인형을 하둡이라고 부르는 것을 보고 거기에서 이름을 가져왔다고 한다. 그게 하둡 로고에 노란 코끼리가 있는 이유이다. 아래 사진은 더그 컷팅이 그 노란 코끼리 인형을 들고 있는 모습니다.

출처: Hadoop, a Free Software Program, Finds Uses Beyond Search - The New York Times

'Java' 카테고리의 다른 글

java.security.InvalidKeyException: Illegal key size 오류  (0) 2015.04.28
문자열 패턴 분석 정규식  (0) 2015.04.21
자바 7 보안 패치  (0) 2012.08.31
자바 제로데이 취약점 공격  (0) 2012.08.01
ehcache 와 Serializable  (0) 2012.03.28