티스토리 뷰

728x90
반응형

 

 

우분투에 하둡을 설치해봅니다.

Hadoop 사용 전 JAVA 설치 필수입니다.

하둡 설치 이전에 java가 먼저 설치되어있어야 합니다.

java가 설치되어있지 않으신 분들은 아래 링크를 들어가서 java를 설치하고 와주세요!

https://domdom.tistory.com/523

 

[java] ubuntu 18.04에 java 8 설치하기

아주 쉽게 우분투 18.04에 자바8 설치해봅니다. 1. 설치 전 먼저 apt-get 업데이트 진행합니다. sudo apt-get update 2. openjdk-8-jdk를 설치합니다. Do you want to continue? 가 나오면 Y를 입력해주세요. sudo apt-get in

domdom.tistory.com

 

하둡 설치를 시작합니다.

 

1. 하둡 사용을 위해 비밀번호 없는 ssh통신이 가능하도록 만들어줍니다.

Openssh Server, pdsh를 설치합니다.

pdsh는 복수개의 targetssh로 접속해서 동일한 명령어로 실행하는 유틸리티입니다.

sudo apt-get install openssh-server
sudo apt-get install pdsh

 

키가 포함된 파일의 권한까지 변경완료합니다.

ssh-keygen –t rsa –P ‘’ -f ~/.ssh/id_rsa

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
ssh localhost

 

2. 이제 본격적으로, 하둡을 설치해줍니다.

아래 아파치 링크를 통해 하둡 다운로드 디렉토리에 들어갑니다.

https://dlcdn.apache.org/hadoop/common/

 

Index of /hadoop/common

 

dlcdn.apache.org

 

 

가장 최신버전 hadoop-3.3.4를 클릭합니다.

 

 

 

hadoop-3.3.4.tar.gz 파일의 링크 주소를 복사하여 서버에 설치파일을 내려받습니다.

 

 

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

 

 

설치파일을 압축해제하면 하둡 설치가 완료됩니다.

tar –xzvf hadoop-3.3.4.tar.gz

 

압축해제한 경로에 파일들이 생성되었습니다.

 

 

3. 이제 하둡 환경변수를 설정을 시작합니다.

vi 편집기로 ~/.bashrc 파일을 열어 맨 아래 부분에 내용을 추가해줍니다.

sudo vi ~/.bashrc

 

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export HADOOP_HOME="/root/hadoop-3.3.4"
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export PATH=$PATH:$JAVA_HOME/bin
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_CLASSPATH=$(hadoop classpath)

 

저장한 내용을 적용합니다.

source ~/.bashrc

 

3-1. hadoop-ev.sh 파일에도 JAVA_HOME 경로를 세팅해줍니다.

./bashrc 파일에 HADOOP_HOME 경로를 설정해주었기 때문에,

이제부터는 $HADOOP_HOME 을 기준으로 경로작업이 가능합니다.

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

 

주석처리 되어있는 JAVA_HOME 부분에 자바경로를 입력해주고 저장합니다.

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

 

3-2. 하둡 hdfs와 상세 속성들을 정의하는 파일 core-site.xml을 수정합니다.

core-site.xml 파일을 열어 configuration를 채워줍니다.

vi $HADOOP_HOME/etc/hadoop/core-site.xml

hadoop.tmp.dir의 파일명은 임의로 수정할 수 있습니다.

<configuration>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/root/hadoop_tmp</value>
    </property>
    <property>
      <name>fs.default.name</name>
      <value>hdfs://127.0.0.1:9000</value>
    </property>
</configuration>

 

3-3. 하둡 데이터노드, 네임노드의 저장소 디렉토리를 설정하는 파일 hdfs-site.xml을 수정합니다.

configuration을 아래와 같이 채워넣어줍니다.

vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
	<property>
		<name>dfs.replication</name>
		<value>1</value>
	</property>
</configuration>

 

3-4. 맵리듀스 파일 값을 정의하기 위한 파일 mapred-site.xml 파일을 수정합니다.

vi $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<property>
		<name>yarn.app.mapreduce.am.env</name>
		<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
	</property>
	<property>
		<name>mapreduce.map.env</name>
		<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
	</property>
	<property>
		<name>mapreduce.reduce.env</name>
		<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
	</property>
</configuration>

 

3-5. 마지막으로 yarn에 관련된 세팅을 정의하는 파일 yarn-site.xml 파일을 수정합니다.

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>
</configuration>

 

4. 하둡을 실행하기 전 네임노드를 먼저 초기화해줍니다.

hdfs namenode –format

5. 하둡 클러스터를 시작해줍니다.

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

실행 후 터미널에 jps 를 입력했을 때 아래와 같이 정상적으로 호출된다면 설치를 성공적으로 완료한 것이고,

 

만약 아래와 같은 에러가 뜬다면,

HADOOP_HOME/etc/hadoop/hadoop-env.sh 을 수정해주어야 합니다.

Starting namenodes on [localhost]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [      ...      ]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

HADOOP_HOME/etc/hadoop/hadoop-env.sh 에 아래 내용을 넣어줍니다.

export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"

다시 start-dfs.sh를 입력하여 실행했을 때,

아래와 같은 에러가 나온다면, pdsh 작동방식에 문제가 생겼으므로 ctrl+c를 눌러 빠져나옵니다.

 

오류 해결을 위해서 $HADOOP_HOME/libexec/hadoop-function.sh 파일을 수정해줍니다.

1019번째 줄에 있는

if [[ -e '/usr/bin/pdsh' ]]; then 부분을

if [[ ! -e '/usr/bin/pdsh' ]]; then 이렇게 변경해주세요.

 

아래 URL에 들어가서 정상적으로 접속이 되는지 확인합니다.

서버ip:9870   (네임노드 UI)

서버ip:9864 (데이터노드 UI)

서버ip:8088 (yarn resource manager UI)

이렇게 가상 분산모드 hadoop 설치 완료입니다!

다음편에서는 HDFS 파일 저장관리에 대한 내용을 다뤄보겠습니다 

 

728x90
반응형
댓글