Immersion In Data

Hadoop

Hadoop 설치

sungjunminn 2022. 12. 6. 17:18

1. ubuntu에 open-jdk 설치

1) 패키지 갱신

sudo apt update

 

2) open jdk 설치 

sudo apt install openjdk-8-jdk -y

 

 

2. hadoop용 계정 생성

1) localhost와 ssh통신을 위한 openssh-server open-client 설치

sudo apt install openssh-server openssh-client -y

 

2) 계정 추가 및 비밀번호 설정

sudo adduser hdoop

 

3) hdoop 계정으로 접속

su - hdoop

 

4) hadoop 유저를 위한 비밀번호 없는 ssh통신 가능하게 하기

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 0600 ~/.ssh/authorized_keys

ssh localhost

 

 

3. hadoop 설치

1) root 디렉토리로 이동

cd ~

 

2) hadoop 공식 홈페이지에서 hadoop 다운로드

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz

cf) 2022.12 기준 hadoop 최신 버전인 hadoop 3.3.4 버전을 다운로드 했다. 

 

3) hadoop 설치 파일 압축 해제

tar xzf hadoop-3.3.4.tar.gz

 

4) hadoop 환경 변수 설정(.bashrc 파일 수정)

nano .bashrc

위 명령어를 치고, 가장 아래로 내려가 아래 텍스트를 작성하고 저장한다.

 

#Hadoop Related Options 
export HADOOP_HOME=/home/hdoop/hadoop-3.3.4
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"

 

5) hadoop 환경 변수 설정한 것 적용

source ~/.bashrc

 

6) hadoop-env.sh 파일 편집(yarn, HDFS, MapReduce 세팅에 관한 파일)

nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh

위 명령어를 치고, 가장 아래로 내려가 아래 텍스트를 작성하고 저장한다.

 

export JAVA_HOME=/usr/lib/jvm/java-8-openjsk-amd64

 

아래 명령어를 통해 java path를 확인한다. 

which javac
readlink -f /usr/bin/javac

 

7) core-site.xml 편집(HDFS와 Hadoop 핵심 property들을 정의하는 파일)

nano $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>

저장 후 tmpdata 디렉토리를 생성한다. 

mkdir tmpdata

 

8) hdfs-site.xml 파일 편집(네임 노드와 데이터 노드의 저장소 디렉토리를 설정하는 파일)

nano $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>

 

9) mapred-site.xl 파일 편집(mapreduce파일 값을 정의하는 파일)

nano $HADOOP_HOME/etc/hadoop/mapred-site.xml

위 명령어를 치고, 가장 아래로 내려가 아래 텍스트를 작성하고 저장한다.

 

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

 

10) yarn-site.xml 파일 편집(YARN 관련 세팅 파일)

nano $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>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>

 

11) 네임노드 초기화

hdfs namenode -format

 

12) 하둡 클러스터 시작

hadoop-3.3.4/sbin/start-dfs.sh
hadoop-3.3.4/sbin/start-yarn.sh
jps