본문 바로가기

Hadoop Ecosystem/Hadoop

Hadoop 설치하기 (WSL2 Ubuntu 환경)

최근 채용공고를 보면 데이터 쪽에서 온프레스미 or 클라우드(AWS) 지식을 요구하는 경우가 많은데 비용적 측면을 고려해 하둡을 공부하기로 다짐했다. 

클라우드 인스턴스 관리를 제대로 못해 30만원을 허공으로 날린 PDSD가 올 것 같기도 하고...

 

 

Hadoop 이란??

 

하둡은 대량의 데이터, 자료를 처리할 수 있도록 클러스터에서 동작하는 분산 프로그램을 지원하는 자바 소프트웨어 프레임워크이다.

 

 

Hadoop 설치 환경

OS : Windows 10 + WSL2 Ubuntu 22.04

Hadoop version : 3.3.2

 

 

https://learn.microsoft.com/ko-kr/windows/wsl/install-manual

 

이전 버전 WSL의 수동 설치 단계

wsl install 명령을 사용하지 않고 이전 버전의 Windows에 WSL을 수동으로 설치하는 방법에 대한 단계별 지침입니다.

learn.microsoft.com

혹시나 WSL 설치가 안되어 있다면 위 링크를 참고해서 설치하면 된다 

 

 

Hadoop 설치과정

1. opensh 설치 및 키 생성

1) opensh 설치

sudo apt update
sudo apt install openssh-server openssh-client -y

 

2) ssh 암호 생성 

ssh-keygen -t rsa

실습이므로 추가 암호 입력하지 않고 엔터를 눌러 생략

 

3) 암호 생성 확인 및 인증키 복사

# id_rsa.pub 내용을 복사하여 authorized_keys 에 추가
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# authorized_keys 내용 확인
cat ~/.ssh/authorized_keys

# 암호 생성 확인
ls ~/.ssh

 

id_rsa는 private-key, id_rsa.pub,authorize_keys 은 public-key 이다.

id_rsq.pub은 SSH 키를 생성할 때 만들어지는 공개키 파일이고 authorized_keys는 서버 접근을 허용할 공개키들을 저장하는 파일이다.

 

+) ~/ 는 /home/user 와 동일하다

+) 리눅스 cat 명령어를 통해 여러가지 파일 출력 및 저장, 추가를 할 수 있다

 

4) rw 권한 부여 및 접속

# rw 권한부여
chmod 0600 ~/.ssh/authorized_keys

# 접속
ssh localhost

 

 

처음 접속할 때 Are you sure want to continue connecting (yes/no/[fingerprint]) 질문에 yes를 입력합니다.

 


2. java openjdk-8 설치 및 환경 변수 설정

1)  java openjdk-8 설치 (하둡과 자바 호환성을 위해 8버전을 설치하자)

sudo apt update
sudo apt-get update
sudo apt-get install openjdk-8-jdk

 

2) .bashrc 에 환경변수 설정

vi ~/.bashrc

 

환경 변수 설정파일 bashrc 에서 아래 코드 입력, 경로 추가

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

 

3) 환경 설정 적용

source ~/.bashrc

 

4) 경로 확인

echo $JAVA_HOME

 

 

 

3. Hadoop 설치

 

1) hadoop 다운로드 및 압축 해제

# 하둡 다운로드
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.2/hadoop-3.3.2.tar.gz

# 압축해제
tar -xvzf hadoop-3.3.2.tar.gz

# 폴더이름 변경
mv hadoop-3.3.2 hadoop

 

2) 환경변수 설정

vi ~/.bashrc

export HADOOP_HOME=/home/user/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

3) 환경변수 적용

source ~/.bashrc

 

4) hadoop 명령이 실행되는지 확인

hadoop version

 

 

4.Hadoop 설정파일 수정

0) 설정파일 위치로 이동

cd ~/hadoop/etc/hadoop

 

1) hadoop-env.sh 파일 수정

vi hadoop-env.sh

# JAVA_HOME 추가
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

 

2) core-site.xml 파일 수정

vi core-site.xml

# 내용 추가
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://localhost:9000</value>
        </property>
</configuration>

 

3) hdfs-site.xml 파일 수정

vi hdfs-site.xml

# 본인이 설정한 디렉토리 경로 수정해서 추가
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/user/hadoop/dfs/name</value>  # 본인이 생성한 name 디렉토리 경로로 입력
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/home/user/hadoop/dfs/data</value>  # 본인이 생성한 data 디렉토리 경로로 입력
  </property>
</configuration>

 

4)  mapred-site.xml 파일 수정

vi mapred-site.xml

# 내용 추가
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>

 

5) yarn-site.xml 파일 내용 수정

vi yarn-site.xml

# 내용 추가
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

 

6)  data와 name 디렉토리 만들기

네임노드와 데이터노드가 메타데이터와 파일을 저장할 디렉토리 생성

cd ~/hadoop
mkdir -p dfs/data
mkdir -p dfs/name

 

7) hdfs namenode 포맷

hdfs namenode -format

 

 

6. Hadoop 실행

0) 명령어 종류 확인

cd ~/hadoop/sbin
ls

 

1) hdfs, yarn 실행 후 확인

start-dfs.sh
start-yarn.sh

# 프로세스 확인
jps

 

2) 웹브라우저에서 대시보드 확인

웹브라우저 주소창에 localhost:9870 입력하고 하둡 대시보드 확인

 

웹브라우저 주소창에 localhost:8088 입력하고 yarn 대시보드 확인

 

 

7. 예제 파일을 실행해 mapreduce 확인하기

 

1) 하둡 맵리듀스 예제 파일 실행 및 출력

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.2.jar

 

2) pi 예제 실행

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.2.jar pi 5 10000

map, reduce가 순서대로 정상실행 되는 것을 확인

 

3) yarn 대시보드에서 맵리듀스 실행 확인

 

맵리듀스 정상 작동까지 확인!

'Hadoop Ecosystem > Hadoop' 카테고리의 다른 글

Hadoop 맵리듀스 실습하기  (2) 2024.06.15