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 모드로 확장하는 데 기반이 된다.
'Server-side 개발 & 트러블 슈팅 > Hadoop (하둡)' 카테고리의 다른 글
[Hadoop] 하둡 MapReduce 기본 실습 가이드 (Fully Distributed 모드) (0) | 2025.04.14 |
---|---|
[Hadoop] 하둡 HDFS 실습 환경 설정 (Fully Distributed 모드) (0) | 2025.04.14 |
[Hadoop] 하둡 실습을 위한 VM 환경 세팅 (virtual box, VMware Fusion) (0) | 2025.04.14 |
[Hadoop] 하둡 MapReduce 1.0 아키텍처와 동작 원리와 MapReduce 2.0의 개선 구조 (0) | 2025.04.09 |
[Hadoop] 하둡 MapReduce 동작 원리 (0) | 2025.04.09 |
댓글