1. 빅데이터란?
빅데이터는 쉽게 말해 "기존의 전통적인 방법(RDBMS)으로는 다룰 수 없는 아주 많은 양의 데이터"를 의미한다. 왜 기존의 방법으로 다룰 수 없을까? RDBMS는 빅데이터를 다루는 데 있어 세가지 문제점을 가지고 있다. 첫 번째로 RDBMS는 scalability(확장성)이 떨어진다. 한 테이블에 몇 테라바이트가 되는 데이터를 저장하고, SQL문을 통해 저장된 데이터를 조작하거나 다른 테이블과 합치는 등의 연산을 하는 것은 불가능에 가깝다. 두 번째로 RDBMS는 어마어마한 양의 데이터를 저장하기에는 너무 비싸다. 마지막으로 RDBMS는 데이터가 엄격한 스키마를 지키기를 요구하는데 대부분의 빅데이터는 이 조건을 만족시키지 못한다. 따라서 빅데이터를 다루기 위해서는 RDBMS가 아닌 새로운 방법이 필요하다.
2. Hadoop이란?
우선 RDBMS의 문제였던 확장성을 해결하기 위해서는 어떻게 해야할까? 한마디로 엄청난 양의 데이터를 저장하고 처리하기 위해서는 어떻게 해야할까? 답은 머신을 여러개 두면 된다. 데이터를 여러 머신에 나눠서 저장하고 데이터를 조작할 때도 여러 머신에서 병렬적으로 처리하도록 하는 것이다.
하지만 이때 고민이 하나 생기는데, 데이터를 여러 머신에 어떻게 나누고 어떻게 병렬적으로 처리할까? 우리에게는 데이터를 분산하고 병렬로 처리할 방법론이 필요다. 여기서 하둡이 등장한다. 하둡은 데이터를 여러 머신에 효율적으로 나눠서 저장하고, 저장된 데이터를 병렬로 처리하는 것을 도와주는 프레임워크다.
3. Hadoop의 구성요소
Hadoop에는 크게 세가지 구성요소인 MapReduce, YARN, HDFS이 있다. HDFS는 하둡의 분산 파일시스템으로 우리에게 어떻게 데이터를 나눠서 저장할 것인지에 대한 답을 제공한다. 다음으로 MapReduce는 하둡의 데이터 처리 프레임워크로 데이터를 병렬적으로 처리하는 방법을 제공한다. 마지막으로 YARN은 하둡이 동작할 때 리소스를 관리해주는 역할을 한다.
1) MapReduce: 데이터 처리 프레임워크
2) YARN: 리소스 관리
3) HDFS (Hadoop Distributed File System): 하둡에서 지원하는 분산 파일시스템
요약하자면 "데이터를 여러 머신에 어떻게 나누고 어떻게 병렬적으로 처리할까?"에서 전자는 HDFS가, 후자는 MapReduce가 그 답을 제공한다.
4. Hadoop의 역사 (짧고 간략함)
마지막으로 하둡의 역사에 대해 간략히 다루겠다. 하둡은 Apache Nutch라는 오픈 소스 웹 검색 엔진의 하부 프로젝트로 시작했다. Nutch 엔지니어들은 크롤러와 검색 시스템을 만들었으나 그들이 만든 시스템은 확장성이 떨어졌다. 이때 구글에서 구글 분산 파일시스템(GFS)에 대한 논문이 발표되었고, Nutch 엔지니어들은 그것을 벤치마킹하여 NDFS를 구현하여 확장성 문제를 해결할 수 있었다. 그 이후로 구글은 맵리듀스 등의 빅데이터를 위한 추가적인 구현을 발표하였는데 Nutch 엔지니어들은 그것들을 모두 오픈소스로 구현하여 Nutch 프로젝트에 추가하였다. 그러다 해당 프로젝트는 2006년에 하둡이라는 독립된 프로젝트로 Nutch에서 분리되었다.
즉 하둡은 구글이 본인들의 웹검색엔진을 위한 빅데이터를 관리하는 시스템을 다수의 엔지니어들이 오픈소스화 한것이다. 구글 자체의 시스템은 기밀이며 하둡은 구글이 발표하는 논문을 참고하며 팔로우업하는 형식이다.
하둡 설치하기 (리눅스, 맥) - 바이너리파일
프로그램을 설치하는 방법은 여러가지가 있지만 나는 가장 간단한 방법으로 그냥 바이너리를 다운 받았다.
소스파일을 다운해서 설치하는 방법은 다른 블로그를 참고하길 바란다.
1. 다운로드
https://hadoop.apache.org/releases.html
위 링크로 접속하면 아래와 같은 화면이 뜨는데 본인이 원하는 버전을 선택한 후 Binary download 링크를 클릭하면 된다.
(본인이 원하는 버전이 없을시 스크롤을 조금만 내리면 Apache release archive 링크가 있다.)
링크를 클릭하면 다른 페이지로 가는데 형관펜 친 부분을 클릭하여 압축된 바이너리 파일을 다운받자.
만약 다운속도가 느리거나 작동하지 않으면 아래 다운로드 링크가 두개 더 있다.
2. 압출 풀기
본인이 원하는 위치에다가 압축을 푼다.
tar xzf hadoop-x.x.x.tar.gz
3. 환경변수 설정
$PATH에 바이너리 파일을 추가해주자.
쉘이 실행될 때 자동으로 추가되도록 홈폴더의 ./bash_profile 폴더에 아래 명령어를 추가해주면 편리하다.
export HADOOP_HOME=다운로드경로/hadoop-x.x.x-src
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
4. 설치확인
아래 명령어로 잘 설치된 것을 확인한다.
hadoop version
'Data Engineering > 하둡 2.0' 카테고리의 다른 글
하둡 맵리듀스란? 맵리듀스 동작 방식 (1) | 2024.02.09 |
---|---|
하둡 HDFS (Hadoop Distributed File System) (0) | 2024.02.09 |
하둡 YARN이란? (0) | 2024.02.09 |
댓글