아파치(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) 서비이스이다.
댓글