BigData/Data Engineering

[Hadoop] 하둡 (v3.3.5버전) 설치하기

세미제로 2024. 2. 11. 15:30

[순서] 

  • 0. Pre-requisite 설치
  • 1. 하둡 다운로드
  • 2. 하둡 설치
  • 3. 하둡 환경 변수 설정
  • 4. hadoop-env.sh 파일 편집하기
  • 5. core-site.xml 파일 편집하기
  • 6. hdfs-site.xml 파일 편집하기
  • 7. mapred-site.xml 파일 편집하기
  • 8. yarn-site.xml 파일 편집하기
  • 9. 네임노드 포맷하기
  • 10. 하둡 클러스터 시작하기

[Prerequisite] - Hadoop 설치를 위한 조건 및 가정

- WSL2는 설치되어 있다고 가정 

- WSL은 amd 기반의 cpu를 기준으로 함(arm은 꼭 공식 문서 및 별도 자료 참조!!)

- (1) open-jdk 설치

- (2) ssh 통신 확인

해당 포스트는 single node에서의 설치 방법을 담았습니다.

(1) open-jdk 설치하기

sudo apt update

  • openjdk 설치
sudo apt install openjdk-8-jdk -y

  • java 버전 확인
 java -version; javac -version

(2) ssh 통신 확인

sudo apt install openssh-server openssh-client -y


1. 하둡 다운로드

  • 버전을 꼭 잘 확인해야 합니다.
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.3/hadoop-3.3.3.tar.gz


2. 하둡 설치

  • 하둡 설치 파일 압축 해제 후 디렉토리 이동(/usr/local 아래로 이동)
tar-xzf hadoop-3.3.5.tar.gz
sudo mv hadoop-3.3.5 /usr/local

  • 링크파일 삭제 후 원래 압축 파일 삭제
sudo ln -s /usr/local/hadoop-3.3.5 /usr/local/hadoop
rm hadoop-3.3.5.tar.gz

  • 하둡 전용 계정 생성
    • 클러스터를 효과적으로 관리할 수 있고, 보안에도 좋기 때문에 하둡만을 위한 계정 생성합니다.
sudo chown -R hadoop:hadoop /usr/local/hadoop-3.3.5
sudo chown -h hadoop:hadoop /usr/local/hadoop

  • 하둡 계정 이동
su hadoop

  • 하둡 계정 ssh 통신 오픈
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

이제 아래와 같은 configuration file 들을 local모드에 맞게 수정해줍니다.

bashrc
hadoop-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml

3. 하둡 환경 변수 설정

nano .bashrc
  • nano .bashrc 했을 때 ↓키로 맨 마지막으로 내려가서 아래의 텍스트를 추가합니다.
    • 폴더 경로에 주의!!
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME 
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

  • 하둡 환경 변수 설정 적용
source ~/.bashrc

4. hadoop-env.sh 파일 편집하기

  • hadoop-env.sh는 yarn, HDFS, MapReduce 하둡관련된 프로젝트 셋팅
    • #export JAVA_HOME=  부분의 #을 제거하고 JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 입력
nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh


5. core-site.xml 파일 편집하기

  • core-site.xml 은 HDFS와 Hadoop 핵심 property들을 정의
nano $HADOOP_HOME/etc/hadoop/core-site.xml
  • core-site.xml 파일에 아래의 텍스트를 붙여넣고 저장
<configuration>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/hadoop/tmpdata</value>
</property>
<property>
  <name>fs.default.name</name>
  <value>hdfs://127.0.0.1:9000</value>
</property>
</configuration>

  • tmpdata 폴더 생성
mkdir tmpdata


6. hdfs-site.xml 파일 편집하기

  • hdfs-site.xml은 데이터 노드와 네임노드의 저장소 디렉토리를 설정하는 파일
nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml
  • hdfs-site.xml 파일에 아래의 텍스트 입력
<configuration>
<property>
  <name>dfs.data.dir</name>
  <value>/home/hdoop/dfsdata/namenode</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>/home/hdoop/dfsdata/datanode</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
</configuration>


7. mapred-site.xml 파일 편집하기

  • mapred-site.xml 은 mapreduce 파일의 값을 정의하는 파일
nano $HADOOP_HOME/etc/hadoop/mapred-site.xml

 

<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
</configuration>

8. yarn-site.xml 파일 편집하기

  • yarn-site.xml은 YARN에 관련된 세팅들을 정의
nano $HADOOP_HOME/etc/hadoop/yarn-site.xml

  • yarn-site.xml 파일에 아래의 텍스트를 입력
<configuration>
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>   
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>0.0.0.0</value>
</property>
<property>
  <name>yarn.resourcemanager.address</name>
  <value>0.0.0.0:8032</value>
</property>
<property>
  <name>yarn.web-proxy.address</name>
  <value>0.0.0.0:8089</value>
</property>
<property>
  <name>yarn.acl.enable</name>
  <value>0</value>
</property>
<property>
  <name>yarn.nodemanager.env-whitelist</name>
  <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>


9. 네임노드 포맷하기

  • 하둡 서비스를 처음 시작하기 전에 네임노드를 초기화하는 것이 중요!!
hdfs namenode -format


10. 하둡 클러스터 시작하기

  • ssh 통신 연결
sudo service ssh status
service ssh start
service ssh status

  • 하둡 클러스터 시작

 

 

  • 네임노드 UI 접속(localhost:9870)

  • 데이터 노드 UI 접속(localhost:9864)

 

  • YARN 리소스 매니저 접속(localhost:9864)