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)