본문 바로가기
Server-side 개발 & 트러블 슈팅/Hadoop (하둡)

[Hadoop] 하둡 설치 및 MapReduce 기본 예제 실습 (Standalone 모드)

by 코딩하는 동현 2025. 4. 14.

Hadoop MapReduce Standalone mode - WordCount 실습

 

Hadoop 실습 환경 구성 (VM 기반)

https://konkukcodekat.tistory.com/250

 

[Hadoop] 하둡 실습을 위한 VM 환경 세팅 (virtual box, VMware Fusion)

Ubuntu 기반 하둡 실습 환경 구축: 네트워크 설정 가이드 하둡 실습을 위해선 VM(Ubuntu)의 네트워크 설정이 매우 중요하다.이 글에서는 cloud-init 비활성화, VM 네트워크 어댑터 설정, IP 수동 할당, 그

konkukcodekat.tistory.com

 

Hadoop이란?

Hadoop은 대용량 데이터를 효율적으로 저장하고 처리할 수 있는 오픈소스 기반의 분산 처리 프레임워크이다. 단일 서버에서 수천 개의 시스템까지 확장 가능하며, 간단한 프로그래밍 모델을 사용하여 클러스터 전반에 걸쳐 데이터를 병렬 처리할 수 있다.

Hadoop의 구성 요소

  • Hadoop Common: 공통 유틸리티 모듈로 다른 하둡 모듈들이 의존
  • HDFS (Hadoop Distributed File System): 여러 대의 서버를 하나의 저장소처럼 묶어 대용량 데이터 저장 가능
  • YARN (Yet Another Resource Negotiator): 클러스터 자원 관리 및 병렬 처리 스케줄링
  • MapReduce: 분산된 데이터를 병렬로 처리하는 프로그래밍 모델
  • Hadoop Ozone: 오브젝트 스토리지 시스템

MapReduce란?

https://konkukcodekat.tistory.com/236

 

[Hadoop] 하둡 MapReduce 동작 원리

MapReduce 프로그래밍 모델 상세 설명하둡의 MapReduce 프로그래밍 모델은 대용량 데이터를 병렬 처리하기 위한 함수 기반 처리 구조를 따르며, 두 가지 핵심 함수로 구성된다.1. Map FunctionInput: (Key, Val

konkukcodekat.tistory.com

 

MapReduce는 대용량 데이터를 분산 환경에서 병렬 처리하는 프로그래밍 모델이다. Map 단계에서는 입력 데이터를 <key, value> 쌍으로 분할하고, Reduce 단계에서는 같은 key에 대한 값들을 모아 집계한다. 대표적인 예제로 WordCount가 있다.


Hadoop 동작 모드

모드 설명
Standalone Mode 모든 프로세스가 단일 머신에서 실행되며, HDFS 미사용. 학습 및 디버깅 용도.
Pseudo Distributed Mode 모든 하둡 프로세스가 같은 머신에서 각각의 데몬으로 실행됨. 실제 분산 환경과 유사하게 작동.
Fully Distributed Mode 여러 노드(서버)로 구성된 클러스터에서 각각 역할을 수행. 진정한 분산 환경 구현.

Java 설치 및 환경 설정

1. Java 설치

하둡은 자바 11까지만 지원하므로, 상위 버전이 아닌 11로 설치해준다.

sudo apt-get install openjdk-11-jdk

2. 환경 변수 설정

운영체제에 따라 JAVA_HOME 설정이 달라진다.

[윈도우에서 VM 사용 시]

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

[Mac에서 VM 사용 시 (M1/M2 등 ARM 아키텍처)]

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-arm64"

파일 수정:

sudo vi /etc/environment

적용:

source /etc/environment

확인:

java -version


Hadoop 설치 및 환경 설정

1. Hadoop 다운로드 및 압축 해제

cd /home/{your_ID}
wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xvzf hadoop-3.3.4.tar.gz
sudo mv hadoop-3.3.4 hadoop
sudo chmod 757 hadoop

2. 환경 변수 설정 (~/.bashrc)

bash쉘을 사용하는것을 예시하는것이므로 bash쉘을 써야한다. bash 명령어를 입력하면 bash쉘이 활성화 된다.

vi ~/.bashrc

 

[윈도우에서 VM 사용 시]

# java env
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

[Mac에서 VM 사용 시]

# java env
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-arm64

 

공통:

export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

# hadoop env
export HADOOP_HOME=/home/{your_ID}/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar

환경 변수 적용:

source ~/.bashrc

3. hadoop-env.sh 수정

sudo vi /home/{your_ID}/hadoop/etc/hadoop/hadoop-env.sh

[윈도우에서 VM 사용 시]

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

[Mac에서 VM 사용 시]

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-arm64

적용:

source /home/{your_ID}/hadoop/etc/hadoop/hadoop-env.sh

하둡 설치 확인

hadoop version


WordCount 예제 실습

1. 입력 디렉토리 및 파일 생성

cd /home/{your_ID}/hadoop
mkdir input
cd input
touch test1.txt test2.txt

test1.txt, test2.txt에 몇 개의 문장을 입력해둔다.

2. WordCount 실행

cd /home/{your_ID}/hadoop
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount input output

3. 결과 확인

cat output/*

마무리

위 절차를 통해 단일 머신(VM) 환경에서 하둡과 맵리듀스를 이용한 WordCount 실습을 완료할 수 있다.

향후 Pseudo-Distributed 또는 Fully-Distributed 모드로 확장하는 데 기반이 된다.

반응형

댓글