hadoop 완전 분포식 모드의 설치 및 설정 절차

hadoop 완전 분포식 모드의 설치 및 설정 절차


태그: Hadoop
[TOC]
본고는 입문 강좌로hadoop-1.2.1을 예로 들어hadoop의 완전 분포식 배치와 설정 절차를 소개한다.
실험 조건:
  • 3개의 Ari 클라우드 서버(Java 환경 이미 구성)
  • 원격 로그인 서버용 PC 1대
  • 앞줄 팁:
  • JAVA 환경은 서버당 별도의 구성이 필요합니다(경로 일치 주의)
  • hadoop 관련 설정은 마스터 하나만 설정하면 되고, 다른 기기는 scp복제
  • 구성 단계


    0. 압축 해제 다운로드

  • Hadoop 설치 팩 다운로드
  • 국내 거울hadoop-1.2.1.tar.gz
  • 홈페이지 hadoop-1.2.1.tar.gz

  • 다운로드: wget https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz스트레스 해소: tar xzvf hadoop-1.2.1.tar.gz

    1. hosts 파일과hadoop-env를 설정합니다.sh 파일

  • 수정/etc/host, 서로 호스트 이름 분석 가능
  • root@RfidLabMaster:/etc# cat hosts
    127.0.0.1 localhost
    127.0.1.1       localhost.localdomain   localhost
    # The following lines are desirable for IPv6 capable hosts
    ::1     localhost ip6-localhost ip6-loopback
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    #10.116.155.242 iZ945z9p7yxZ
    #10.116.155.242 RfidLabMaster
    120.25.162.238 RfidLabMaster
    120.27.138.14  RfidLabSlave1
    120.27.137.211 RfidLabSlave2
  • hadoop의 압축 해제 디렉터리에 들어가서conf/hadoop-env를 편집합니다.sh(버전에 따라 프로필 위치가 변경됨)
  • 기본 JAVA_ 보기HOME: env |grep JAVA_HOME
    표시: JAVA_HOME=/usr/lib/jvm/jdk1.8.0_60hadoop-env를 편집합니다.sh: vim hadoop-env.sh
    찾기export JAVA_HOME, 삭제# 주석을 본 컴퓨터로 변경export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_60

    2.ssh 구성


    2.1.brian 사용자로 로그인하여 brian 홈 디렉터리에서 루트 디렉터리에 들어가기 위한 작업을 진행합니다. cd /root 키 생성: ssh-keygen -t rsa cd .ssh cp id_rsa.pub authorized_keys2.2 ssh 키를 나누어 각 노드의 authorized_keys의 내용을 상대방의 이 파일에 복사하면 비밀번호 없이 서로 ssh가 연결되어 모든 노드를 authorized_keys의 내용을 복사하여 큰 파일을 만들고 이 새로운 authorized_keys는 모든 노드의 원래 파일을 덮어씁니다.

    3. conf 디렉토리에서 core-site를 편집합니다.xml,hdfs-site.xml,mapred-site.xml 세 개의 핵심 프로필

  • core-site를 수정합니다.xml 파일이 탭에 추가됨:
  • 
     fs.default.name
      hdfs://RfidLabMaster:9000
    
    
      hadoop.tmp.dir
    /home/brian/hadoopdir/tmp
    
  • hdfs-site를 수정합니다.xml 파일이 탭에 추가됨:
  • 
    dfs.name.dir
    /home/brian/hadoopdir/name #hadoop name 
      
    
    
    dfs.data.dir
    /home/brian/hadoopdir/data
     
    
    
      dfs.replication
      
      2
    
  • mapred-site를 수정합니다.xml 파일이 탭에 추가됨:
  • 
      mapred.job.tracker
      hdfs://RfidLabMaster:9001
    
    
      mapred.local.dir
     /home/brian/hadoopdir/local
    

    4. 마스터와 슬레이브 파일 수정


    conf/masters
    RfidLabMaster

    conf/slaves
    RfidLabSlave1
    RfidLabSlave2

    5. 각 노드에hadoop 복사

    scp -r ./hadoop-1.2.1 RfidLabSlave1:/home/brian

    6. 포맷 분산 파일 시스템


    hadoop 디렉터리에 입력 bin/hadoop namenode -format

    7. 수호 프로세스 시작


    hadoop 디렉터리에 입력 bin/start-all.sh

    결과


    마스터 노드
    brian@RfidLabMaster:~/hadoop-1.2.1/logs$ jps
    26721 JobTracker
    26449 NameNode
    26889 Jps
    26633 SecondaryNameNode

    노드에서
    brian@RfidLabSlave1:~$ jps
    20402 Jps
    20204 DataNode
    20302 TaskTracker

    ERROR 및 예외가 없는 로그 파일 보기

    당면한 문제


    1. [mater 로그 이상]:hadoop/hdfs/name is in an inconsistent state: storage directory (hadoop/hdfs/data/)does not exist or is not accessible
  • stack overflow question 1.1

  • 2. [slave 로그 이상]: Hadoop:java.io.IOException: Call to failed on local exception: java.io.EOFException
  • stack overflow question 2.1

  • 문제1과 2: 분포식 파일 시스템을 먼저 포맷하는 것을 잊어버린 것 같습니다. [문제2] [문제1]의 연결 문제인 것 같습니다. [6. 분포식 파일 시스템 포맷 참조]
    3. [slave log 이상]: ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in
  • stack overflow question 3.1
  • stack overflow question 3.2

  • 문제3: 포맷 후 ID 충돌을 반복하는 문제인 것 같습니다. 위의 두 링크는 여러 가지 해결 방법이 있습니다. 버전 파일에서 ID를 바꾸는 것은 무엇입니까? 가장 간단한 것은 파일에서 직접 삭제하는 것 같습니다.conf 디렉터리에서 core-site를 편집합니다.xml,hdfs-site.xml,mapred-site.xml 세 개의 핵심 프로필에 관련된 폴더
    4. [master log]: ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:brian cause:java.io.IOException: File/home/brian/hadoop_dir/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1
  • stack overflow question 4.1
  • stack overflow question 4.2

  • 문제4: 내가 이전에 설정한 것에 문제가 있었는지 다시 설정한 다음에 [문제3]에서 삭제한 파일에 따라 해결했다
    hadoop에서 발생할 수 있는 오류를 보충합니다.
    연락처 작성자
  • @brianway (CSDN)
  • @brianway (OSchina)
  • @brianway (github)

  • 저자 더 많은 글: @brianway

    좋은 웹페이지 즐겨찾기