해당 포스팅에서는 하둡을 설치 및 실행하는 방법을 설명합니다.
CF) Ubuntu Version : 22.04.2
JAVA 설치
1. Ubunto 실행 후 JAVA 8 설치 확인
java -version
- JAVA 가 설치가 되어있지 않다.
2. JAVA 8 설치
sudo apt install openjdk-8-jre-headless
- 보통 아래처럼 Unable to locate package 에러가 발생한다.
- 따라서 업데이터 패키지 리스트를 업데이트 해주어야 한다.
- 아래 코드를 입력하면 패키지 리스트들을 다운받게 된다.
sudo apt update
- 이후 다시 JAVA를 설치해본다. 아래 코드를 다시 입력하면 설치가 진행된다.
sudo apt install openjdk-8-jre-headless
- 자바 버전을 다시 확인해본다. 아래 처럼 자바가 설치된 것을 확인할 수 있다.
3. JDK를 설치한다.
sudo apt install openjdk-8-jdk-headless
Hadoop 계정 세팅
1. 계정을 생성한다.
- 아래 코드를 입력 한 후 비밀번호를 세팅한다.
- 나머지 정보는 입력해도 되고, 입력하지 않고 엔터를 눌러도 된다.
sudo adduser hdoop
2. 생성한 계정으로 스위칭 한다.
- 아래 코드를 입력하고 1.에서 만든 비밀번호를 입력한다.
su - hdoop
3. 패스워드 없이 로컬 호스트에 로그인하기 위해 아래 내용을 세팅한다.
- ssh key pair를 만든다.
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
4. Public Key를 authorized key로 등록한다.
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
5. authorized key를 읽기전용으로 만든다.
chmod 0600 ~/.ssh/authorized_keys
Hadoop 설치
1. Hadoop 파일을 다운받는다.
wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz
2. 설치한 하둡파일을 압축해제하고 설치한다..
tar -xvzf hadoop-3.3.4.tar.gz
3. 하둡이 설치 된 것을 확인한다.
ls -tl
Hadoop 환경세팅
- 아래 세팅중에서 하나라도 잘못되면 Hadoop세팅이 안될 수 있으니 주의바랍니다.
1. 환경변수를 세팅한다.
vi ~/.bashrc
- 참고로 파일 수정은 "i"를 눌러서 수정할 수 있으며. 저장후 나가기는 esc를 누른 후 :가 나오면 ":wq"를 입력하면 된다..
export BASE_HOME=/home/hdoop
export HADOOP_HOME=$BASE_HOME/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
2. hadoop-env.sh (마스터 파일에 해당하는 파일)을 수정한다.
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
- 주석처리된 JAVA_HOME의 주석을 풀고 아래처럼 세팅한다.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
3. core_site.xml 설정
- HDFS 네임노드와 관련된 정보가 들어가는 기본 파일 시스템이름을 설정한다.
vi $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hdoop/tmpdata</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
</configuration>
4. hdfs-site.xml 설정
- namespace와 트랙잭션 로그를 저장 할 네임노드와 데이터 노드의 저장 경로를 지정한다.
- 데이터 복제 개수를 설정한다.
vi $HADOOP_HOME/etc/hadoop/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>
5. mapred-site.xml 설정
- 기본 맵리듀스 프레임워크로 yarn을 설정한다.
vi $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
6. yarn-site.xml 설정
- 리소스매니저 Web-ui 주소, 노드매니저에서 중간단계 파일 및 로그를 저장할 경로 정의
vi $HADOOP_HOME/etc/hadoop/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>localhost</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,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
HDFS 및 YARN 실행
1. HDFS를 포멧한다 (설정 초기화)
hdfs namenode -format
2. 관계된 스크립트들이 있는 경로로 이동한다
cd hadoop-3.3.4/sbin/
3. Hdfs와 관련된 네임노드와 데이터노드를 실행시킨다.
./start-dfs.sh
4. Yarn을 실행한다 (리소스매니저와 노드매니저를 실행)
./start-yarn.sh
5. Hdfs와 Yarn이 제대로 실행되었는지 체크한다
jps
CF) 아래와 같은 코드로 한번에 hdfs와 yarn을 한번에 실행시킬 수 있다.
./start-all.sh
CF) 아래와 같은 코드로 한번에 hdfs와 yarn을 한번에 종료시킬 수 있다.
- "resourcemanager is running as process 15190." 같은 에러가 뜬다면 다 종료시키고 다시 실행시키는 것이 좋다.
./stop-all.sh
7. Hdfs 쪽에 User폴더와 내 sub폴더를 만든다.
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/hdoop
위 포스팅은 [파이썬으로 해보는 Spark 프로그래밍 with 프로그래머스] 강의를 듣고 정리한 내용입니다
'Spark & Hadoop > Hadoop' 카테고리의 다른 글
[Hadoop/Spark] YARN의 구성요소와 작동방식 (0) | 2024.05.05 |
---|---|
[Hadoop] 맵리듀스 프로그래밍 실행 (WordCount) (0) | 2023.08.20 |
[Hadoop] Windows에서 우분투 설치 (Ubuntu on WSL2) (Ubuntu 설치시 Error 해결) (0) | 2023.08.10 |
[Hadoop] 맵리듀스(MapReduce) Programming (0) | 2023.08.09 |
[Hadoop] 대용량 분산시스템 Hadoop과 MapReduce (Hadoop 1.0, Hadoop 2.0, Hadoop 3.0) (0) | 2023.08.09 |