Developer MJ

[Hadoop] Yarn (단일 노드 YARN 클러스터 설치) - part 2 본문

카테고리 없음

[Hadoop] Yarn (단일 노드 YARN 클러스터 설치) - part 2

MIN JOON 2020. 12. 14. 13:25

단일 노드 YARN 클러스터 설치

  • 하둡 배포판에 포함된 맵리듀스 예제 프로그램을 단일 워크스테이션에서 테스트 해볼 수 있도록 간소화된 설치 및 설정 방법이다.
  • 예제 프로그램의 경로는 아래와 같다.
      /opt/yarn/hadoop-2.2.0/share/hadoop/mapreduce

아파치 하둡 다운로드

cd /root
wget http://mirrors.ibiblio.org/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz
mkdir -p /opt/yarn
cd /opt/yarn
tar xvzf /root/hadoop-2.2.0.tar.gz

JAVA_HOME 설정

OS 사용자와 그룹 생성

groupadd hadoop
useradd -g hadoop yarn
useradd -g hadoop HDFS
useradd -g hadoop mapred

데이터, 로그 디렉토리 생성

mkdir -p /var/data/hadoop/hdfs/nn
mkdir -p /var/data/hadoop/hdfs/snn
mkdir -p /var/data/hadoop/hdfs/dn
chown hdfs:hadoop /var/data/hadoop/hdfs -R

mkdir -p /var/log/hadoop/yarn
chown yarn:hadoop /var/log/hadoop/yarn -R

cd /opt/yarn/hadoop-2.2.0
mkdir logs
chmod g+w logs
chown yarn hadoop . -R

core-site.xml 설정

  • 하둡설치 경로(/opt/yarn/hadoop-2.2.0)을 기준으로 /etc/hadoop/core-site.xml 파일을 수정한다.
    1. metadata 서버인 네임노드 호스트의 이름과 포트를 설정한다.
    2. hdfs를 사용할 기본 사용자 이름을 설정한다.
      <configuration>
         <property>
             <name>fs.default.name</name>
             <value>hdfs://localhost:9000</value>
         </property>
         <property>
             <name>hadoop.http.staticuser.user</name>
             <value>hdfs</value>
         </property>
      </configuration>

hdfs-site.xml 설정

  • 하둡설치 경로(/opt/yarn/hadoop-2.2.0)을 기준으로 /etc/hadoop/hdfs-site.xml 파일을 수정한다.
    1. 단일모드에서는 파일블록을 복제할 필요가 없으므로 dfs.replicationr값을 1(default:3)로 변경한다.
    2. 미리 생성한 네임노드, 세컨더리 네임노드, 데이터노드의 디렉토리를 지정한다.
      <configuration>
       <property>
           <name>dfs.replication</name>
           <value>1</value>
       </property>
       <property>
           <name>dfs.namenode.name.dir</name>
           <value>file:/var/data/hadoop/hdfs/nn</value>
       </property>
       <property>
           <name>dfs.checkpoint.dir</name>
           <value>file:/var/data/hadoop/hdfs/snn</value>
       </property>
       <property>
           <name>dfs.checkpoint.edits.dir</name>
           <value>file:/var/data/hadoop/hdfs/snn</value>
       </property>
       <property>
           <name>dfs.datanode.data.dir</name>
           <value>file:/var/data/hadoop/hdfs/dn</value>
       </property>
      </configuration>

mapred-site.xml 설정

  • 하둡설치 경로(/opt/yarn/hadoop-2.2.0)을 기준으로 /etc/hadoop/mapred-site.xml 파일을 수정한다.
    1. 하둡 버전2에서 가능한 맵리듀스 프레임워크 설정을 'yarn'으로 한다.
      <configuration>
       <property>
           <name>mapreduce.framework.name</name>
           <value>yarn</value>
       </property>
      </configuration>

yarn-site.xml 설정

  • 하둡설치 경로(/opt/yarn/hadoop-2.2.0)을 기준으로 /etc/hadoop/yarn-site.xml 파일을 수정한다.
    1. 노드 매니저에게 구현에 mapreduce.shuffle이라는 보조 서비스를 사용을 설정한다.
      <configuration>
       <property>
           <name>nodemanager.aux-services</name>
           <value>mapreduce.shuffle</value>
       </property>
       <property>
           <name>nodemanager.aux-services.mapreduce.shuflle.class</name>
           <value>org.apache.hadoop.mapred.ShuffleHandler</value>
       </property>
      </configuration>

Java heap size 수정

  • 하둡 프로세스들은 /etc/hadoo/*-env.sh에 기반하여 설정되며 대부분의 기본 값(1GB)이기 때문에 단일 노드 환경을 위해 수정한다.
  • /etc/hadoop/hadoop-env.sh 내 아래 설정 값들을 수정한다.
      HADOOP_HEAPSIZE="500"
      HADOOP_NAMENODE_INIT_HEAPSIZE="500"
  • /etc/hadoo/mapred-env.sh 내 아래 설정 값들을 수정한다.
      HADOOP_JOB_HISTORYSERVER_HEAPSIZE="500"
  • /etc/hadoo/yarn-env.sh 내 아래 설정 값들을 수정한다.
      JAVA_HEAP_MAX=-Xmx500m
  • /etc/hadoo/yarn-env.sh 내 아래 설정 값들을 추가한다.
      YARN_HEAPSIZE=500

HDFS 포맷

  • 네임노드 서비스가 사용할 디렉토리고 /etc/hadoop/hdfs-site.xml에서 dfs.namenode.name.dir에 설정한 디렉토리를 포맷한다.
      su - hdfs
      /opt/yarn/hadoop-2.2.0/bin/hdfs namenode -format

HDFS 서비스 시작

  • 하둡 배포판에 포함된 스크립트 중에는 서비스 구동 스크립트가 포함되어있다. 스크립트를 통해 각 노드들의 서비스를 구동시킬 수 있다.
      /opt/yarn/hadoop-2.2.0/sbin/hadoop-daemon.sh start namenode
      /opt/yarn/hadoop-2.2.0/sbin/hadoop-daemon.sh start secondarynamenode
      /opt/yarn/hadoop-2.2.0/sbin/haddop-daemon.sh start datanode
  • 실행중인 서비스를 확인하기 위해 아래 커맨드를 사용한다.
      jps
  • 서비스를 중지시킬 때는 아래와 같이 수행한다.
      /opt/yarn/hadoop-2.2.0/sbin/haddop-daemon.sh stop datanode

YARN 서비스 시작

  • 리소스 매니저와 노드매니저는 'yarn' 사용자로 시작해야한다.
      exit logout
      su - yarn
      /opt/yarn/hadoop-2.2.0/sbin/yarn-daemon.sh start resourcemanager
      /opt/yarn/hadoop-2.2.0/sbin/yarn-daemon.sh start nodemanager
  • 실행중인 서비스를 확인하기 위해 아래 커맨드를 사용한다.
      jps
  • 서비스를 중지시킬 때는 아래와 같이 수행한다.
      /opt/yarn/hadoop-2.2.0/sbin/yarn-daemon.sh stop nodemanager

웹 UI를 통한 실행중인 서비스 확인

  • HDFS와 YARN은 각각 웹 인터페이스가 있다.
  • HDFS는 50070 포트
  • YARN은 8088 포트

예제 프로그램 실행

  • 예제 프로그램 중 'pi' 를 실행은 아래 커맨드를 사용한다.
      su - hdfs
      export YARN_EXAMPLES=/opt/yarn/hadoop-2.2.0/share/hadoop/mapreduce
      /opt/yarn/hadoop-2.2.0/bin/yarn.jar $YARN_EXAMPLES/hadoop-mapreduce-examples-2.2.0.jar pi 1000