Spark & Hadoop/Hadoop

[Hadoop] 하둡(Hadoop) 설치 (on Ubuntu)

YSY^ 2023. 8. 14. 22:03

해당 포스팅에서는 하둡을 설치 및 실행하는 방법을 설명합니다.

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 프로그래머스] 강의를 듣고 정리한 내용입니다

728x90
반응형