최근 채용공고를 보면 데이터 쪽에서 온프레스미 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 설치가 안되어 있다면 위 링크를 참고해서 설치하면 된다
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 |
---|