본문 바로가기

데이터베이스(DA, AA, TA)/데이터처리

[하둡] 아파치 하둡이란?

아파치 하둡이란?


Apache Hadoop빅데이터를 저장, 처리, 분석할 수 있는 소프트웨어 프레임워크입니다.


아파치 하둡의 특징은 다음과 같습니다.

- Distributed: 수십만대의 컴퓨터에 자료 분산 저장 및 처리

- Scalable: 용량이 증대되는 대로 컴퓨터 추가

- Fault-tolerant: 하나 이상의 컴퓨터가 고장나는 경우에도 시스템이 정상 동작

- Open source: 공개 소프트웨어




구글이 나오면서 굉장히 많은 데이터를 가져온 사례가 있었습니다. 구글에서 데이터들이 빅데이터가 되었고, 빅데이터를 분석하고 처리하는 프레임워크가 존재하지 않았습니다. 그래서 구글이 생각한게 데이터를 모아서 처리할 수 있는 프레임워크가 필요하다고 생각하였고, 실제 빅데이터를 처리할 수 있는 프레임워크를 만들었으나, 구글은 그 소스를 오픈하지 않았습니다. 반면 아파치는 전세계 공개 소프트웨어를 생산하는 비영리 조직이고 구글의 방식을 따라 아파치 그룹에서 제공한 오픈소스 프로젝트입니다.


- 오픈 소스 프로젝트이며, 약 10개 회사의 60명의 커미터가 존재합니다 (Cloudera, Yahoo, Facebook, Apple, ...)

- 수 백명의 contributor들이 개발 중이고, bug 수정 등의 작업을 수행합니다.

- 다양하고 많은 프로젝트, 애플리케이션, 도구에서 사용합니다.




하둡 에코 시스템


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



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




하둡을 시작한 동기

- 기존 large-scale 컴퓨팅 시스템의 문제점을 해결하기 위한 방안

  구글이 생각한 방식 Storage: GFS(구글파일시스템) / Computation: MapReduce방식

- Google과 같이 대용량 데이터 처리를 처리하는 응용분야 출현