Hadoop 클러스터 구축(둘)

11942 단어
앞의 단계는 Hadoop 집단 구축을 보십시오 (1)
Hadoop 설치
설치 해제
마스터에 로그인하여 Hadoop 2.6.2 압축 파일을/홈/hm/폴더로 압축해제합니다.(호스트에서 드래그하거나 psftp 압축 패키지를 마스터로 끌어올릴 수도 있다)
[hm@master ~]$ tar -xzvf hadoop-2.6.2.tar.gz -C ~
[hm@master ~]$ mv hadoop-2.6.2 hadoop
[hm@master ~]$ cd hadoop/

환경 변수 수정
[hm@master hadoop]$ vi etc/hadoop/hadoop-env.sh 

export JAVA 찾기HOME=${JAVA HOME}, 절대 경로로 수정:
# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.95.x86_64

동시에 etc/hadoop/yarn-env.sh와mapred-env.sh의 JAVAHOME도 이에 따라 수정됩니다.
Optional - $PATH 수정
모든 경로에서 Hadoop 명령과 Java 명령을 쉽게 실행할 수 있습니다.
[hm@master hadoop]$ cd ~ 
[hm@master ~]$ vi .bash_profile

다음으로 수정:
# User specific environment and startup programs
export HADOOP_PREFIX=/home/hm/hadoop
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.95.x86_64
PATH=$PATH:$HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$JAVA_HOME/bin

export PATH

변경 사항을 즉시 적용합니다.
[hm@master ~]$ source .bash_profile

환경 변수 설정 테스트
[hm@master hadoop]$ bin/hadoop

hadoop 명령의 usage 정보를 볼 수 있습니다.
[hm@master ~]$ jps

jvm의 프로세스 정보를 볼 수 있습니다.
 
분산 Hadoop 클러스터 구성
구성 파일 수정
hadoop/etc/hadoop/core-site.xml
hdfs에서 생성된 임시 파일을 배치하기 위한 tmp 디렉터리를 만듭니다. 설정하지 않으면 기본 위치는/tmp/hadoop - {username}/이며, 기계를 다시 시작하면 매번 다시 format NameNode가 필요합니다.
[hm@master hadoop]$ mkdir tmp
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9100</value>
    </property>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>file:/home/hm/hadoop/tmp</value>
    </property>
</configuration>

file: 로컬 파일 시스템을 대표하고hdfs: 분포식 파일 시스템을 대표합니다.
포트가 사용되었는지 미리 확인하십시오
[hm@master hadoop]$ netstat -nap | grep 9100

 
hadoop/etc/hadoop/hdfs-site.xml
hdfs 파일 시스템 디렉토리를 만들려면 다음과 같이 하십시오.
[hm@master hadoop]$ mkdir dfs

구성 파일 수정
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hm/hadoop/dfs/name</value>
        <description>  </description>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hm/hadoop/dfs/data</value>
        <description> </description>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
</configuration>

hadoop/etc/hadoop/mapred-site.xml
기본값은 존재하지 않습니다.template에서 복사하거나 이름을 변경해야 합니다
[hm@master hadoop]$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

hadoop/etc/hadoop/yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <description>The hostname of the RM.</description>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <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>

 
마스터,slave 노드의hostname 또는 ip 추가
이 파일은 주로 Hadoop의 일부 스크립트에 호출되며, 마스터에서 여러 대의 slave에 명령을 한꺼번에 실행하는 역할을 합니다.따라서 ssh 암호 면제 로그인은 반드시 설정해야 합니다.
[hm@master hadoop]$ vi etc/hadoop/slaves

다음으로 수정:
slave1
slave2

Optional - 랙 감지(rack-aware)
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/RackAwareness.html
Logging
etc/hadoop/log4j를 수정합니다.properties는hadoop daemons의log 설정을 사용자 정의할 수 있습니다
추가 구성
예를 들어 NodeManagers의 상태 모니터링 등은yarn-site에서 할 수 있다.xml에서 설정하고 공식 문서를 참고하십시오:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html
 
구성된 Hadoop 설치 패키지를 Slaves로 복사
이렇게 하면 많은 설치 배치 시간을 절약할 수 있지만, 슬레이브와 마스터가 같은 파일 디렉터리 구조, 사용자와 사용자 그룹의 이름, 권한을 가지고 있어야 한다. 
[hm@master hadoop]$ scp -r hadoop/ hm@slave1:~
[hm@master hadoop]$ scp -r hadoop/ hm@slave2:~

그 밖에 slave기계의 환경 변수, e.g.를 수정하는 것을 잊지 마세요.bash_프로필 파일, 내용과 마스터가 일치합니다.
 
HDFS 시작
포맷 분산 파일 시스템
[hm@master hadoop]$ bin/hdfs namenode -format

방화벽을 닫다
CentOS 6.7은 기본적으로 방화벽이 열리고 DataNode가 NameNode에게 보내는 심장 박동 정보는 방화벽 밖으로 가려집니다.
방화벽에 마스터, slave에 대응하는 포트를 설치하거나 안전성을 고려하지 않으면 모든 집단 가상 기기의 방화벽을 닫아야 한다.단계:
1. 방화벽 상태 확인
  [hm@master ~]$ sudo/etc/init.d/iptables status
2. 방화벽 중지
[hm@master ~]$ sudo /etc/init.d/iptables stop

방화벽을 켜서 켜지 않도록 설정할 수 있다
[hm@master hadoop]$ sudo chkconfig iptables off
[hm@master hadoop]$ chkconfig --list iptables

 
HDFS 시작
[hm@master hadoop]$ sbin/start-dfs.sh

부트 결과를 확인하려면 다음과 같이 하십시오.
마스터에 jps를 입력하면 NameNode와 SecondaryNameNode 두 개의 데몬을 볼 수 있습니다
[hm@master hadoop]$ jps
24440 Jps
24153 NameNode
24325 SecondaryNameNode

slave1과 slave2에 jps를 입력하면 DataNode의 데몬을 볼 수 있습니다
[hm@slave1 hadoop]$ jps
23852 DataNode
23927 Jps

클러스터 상태 확인
[hm@master hadoop]$ bin/hdfs dfsadmin -report

또는 로그인http://master:50070살펴보다.Live DataNodes는 >0이어야 합니다.그렇지 않으면 DataNode 노드의 log를 보고 구체적인 원인을 보십시오.
 
YARN 시작
[hm@master hadoop]$ sbin/start-yarn.sh

이 때 jps 결과를 보면 마스터에 ResourceManager의 데몬이 많이 보입니다
[hm@master hadoop]$ jps
24153 NameNode
24762 Jps
24506 ResourceManager
24325 SecondaryNameNode

슬레이브에 NodeManager의 Daemon이 많아요.
[hm@slave1 hadoop]$ jps
23852 DataNode
23971 NodeManager
24082 Jps

이로써 전체 집단 환경 설정이 완료되었습니다. 
 
Web Interface
http://master:50070NameNode 정보, 슬라브 1, 슬라브 2 정보를 볼 수 있습니다.
http://master:8088ResourceManager 정보
참고 가상 시스템에서 proxy를 사용으로 설정하면 마스터를 proxy의 Ignored Hosts에 추가해야 합니다. 그렇지 않으면 위의 URL에 접근할 수 없습니다.
 
MapReduce Job 실행
여기에 자신이 가지고 있는 wordcount을 예로 들자.
준비 작업
hdfs에 input 폴더를 만듭니다: (/user/hm는 hm 사용자가hdfs에 있는 기본 홈)
[hm@master hadoop]$ bin/hdfs dfs -mkdir -p /user/hm/input/wordcount

테스트 파일을 만들고 내용을 추가해서hdfs에 업로드합니다
[hm@master hadoop]$ vi tmp/helloworld
hello hadoop
hello master
hello slave
hello slave too
[hm@master hadoop]$ bin/hdfs dfs -put tmp/helloworld input/wordcount

내용을hdfs에 업로드했는지 보기
[hm@master hadoop]$ bin/hdfs dfs -ls input/wordcount

아니면 내용이 일치하는지 보고 싶어요.
[hm@master hadoop]$ bin/hdfs dfs -text input/wordcount/helloworld

상술한 절차를 반복하여 몇 개의 파일을 더 업로드하다.
wordcount 프로그램 실행
[hm@master hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.2.jar wordcount input/wordcount output/wordcount

실행 출력 결과를 보려면 다음과 같이 하십시오.
[hm@master hadoop]$ bin/hdfs dfs -cat output/wordcount/* hadoop 1 hello 4 master 1 slave 2 too 1

YARN 및 HDFS 중지
실행이 끝나면 다른 작업을 수행할 필요가 없으며 데몬을 닫을 수 있습니다.
[hm@master hadoop]$ sbin/stop-yarn.sh
[hm@master hadoop]$ sbin/stop-dfs.sh

다음에hdfs를 다시 포맷하기를 원한다면 관련 파일을 삭제하고 기계를 다시 시작하는 것이 좋습니다.더 이상 필요하지 않은log 파일을 삭제하여 가상 머신 공간을 방출하는 것도 권장합니다.
[hm@master hadoop]$ rm -rf dfs/
[hm@master hadoop]$ rm -rf tmp/*
[hm@master hadoop]$ rm -rf logs/*

 
전체 환경 설정과 자바 앱 실행에 문제가 없습니다.다음은 debug를 진행할 것입니다. Hadoop 집단 구축 참고(3)

좋은 웹페이지 즐겨찾기