HDFS 고가용성 완전 분산 구축

HDFS 고가용성 완전 분산 구축


클러스터 계획: NN-1: Namenode(active) NN-1: Namenode(standby) DN: Datanode ZK: Zookeeper ZKFC: Zookeeper Failover Controller JUN: Journalnode
서버 이름
프로세스
node01
NN-1、ZKFC、JUN
node02
NN-2、DN、ZK、ZKFC、JUN
node03
DN、ZK、JUN
node04
DN、ZK
  • 1.동기화 서버 시간 ① 각 노드에 ntp 설치 - 명령: yum install ntp ② 인터넷에서 최신 시간 서버를 찾습니다. 여기는 아리의 - 주소: ntp1을 사용합니다.aliyun.com ③ 동기화 시간 - 명령: ntpdate ntp1.aliyun.com
  • 2.기밀 유지 로그인 구성
  • node01->node01 node01->node02 node01->node03 node01->node04 node02->node01① 모든 노드 실행--명령: ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa② node01 노드에서 실행하고 node01의 공개 키를 다른 노드의 화이트리스트에 추가합니다. 명령:
        ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
        ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
        ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
        ssh-copy-id -i ~/.ssh/id_rsa.pub root@node04
    

    ② node02 노드에서 node02의 공개 키를 node01의 화이트리스트에 추가합니다. 명령:
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
    

    주:node01~04는 서버 이름입니다. IP 주소로 바꿀 수 있습니다
  • 3.모든 노드 설정 JDK ① 자체 jdk 마운트 해제 - 명령: yum remove *openjdk* ② 원하는 jdk 버전을 다운로드하고 디렉터리에 들어가서 압축을 풀기 - 명령: tar -zxvf jdk-8u131-linux-x64.tar.gz ③ 환경 변수를 설정합니다.etc에서 프로필 파일을 엽니다. 명령: vim /etc/profile ④ jdk가 있는 디렉터리를 추가합니다. 명령: export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131 - 명령: export PATH=$PATH:$JAVA_HOME/bin ⑤ 프로필 파일을 다시 실행합니다. 명령: source /etc/profile 또는 . /etc/profile ⑥ 새로 설치된 jdk를 검사합니다. 명령: java -version 다음 내용을 표시하면 jdk가 설정됩니다. 각 노드에서 jdk를 설정해야 합니다.
  •  java version "1.8.0_131"
     Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
     Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
    
  • 4.hdfs-site를 수정합니다.xml 프로필 파일은/압축 해제 디렉터리/etc/hadoop/hdfs-site에 있습니다.xml
  • 
    	dfs.nameservices
    	mycluster
    
    
    	dfs.ha.namenodes.mycluster
    	nn1,nn2
    
    
    	dfs.namenode.rpc-address.mycluster.nn1
    	node01:8020
    
    
    	dfs.namenode.rpc-address.mycluster.nn2
    	node02:8020
    
    
    	dfs.namenode.http-address.mycluster.nn1
    	node01:50070
    
    
    	dfs.namenode.http-address.mycluster.nn2
    	node02:50070
    
    
    	dfs.namenode.shared.edits.dir
    	qjournal://node01:8485;node02:8485;node03:8485/mycluster
    
    
    	dfs.journalnode.edits.dir
    	/var/sxt/hadoop/ha/jn
    
    
    	dfs.client.failover.proxy.provider.mycluster
    	org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    
    
    	dfs.ha.fencing.methods
    	sshfence
    
    
    	dfs.ha.fencing.ssh.private-key-files
    	/root/.ssh/id_rsa
    
    
    	dfs.ha.automatic-failover.enabled
    	true
     
    
    
    
  • 5.코어 사이트를 수정합니다.xml 프로필 파일은/압축 해제 디렉터리/etc/hadoop/core-site에 있습니다.xml
  • 
    	fs.defaultFS
    	hdfs://mycluster
    
    
    	ha.zookeeper.quorum
    	node02:2181,node03:2181,node04:2181
    
    
    	hadoop.tmp.dir
    	/var/abc/hadoop/cluster
    
    
    
    
  • 6.slaves 프로필 수정:/압축 해제 디렉터리/etc/hadoop/slaves에서 localhost를 node02 node03 node04
  • 로 수정
  • 7.구성된 설치 패키지를 다른 노드에 배포합니다. 명령:
  •     scp -r hadoop-2.6.5 node02:·pwd·
        scp -r hadoop-2.6.5 node03:·pwd·
        scp -r hadoop-2.6.5 node04:·pwd·
    

    주: 설치 패키지 디렉터리는 통일되어야 합니다
  • 8.Zookeeper 클러스터 구축 8.1 압축 해제 - 명령: tar zxf zookeeper-3.4.10.tar.gz8.2 zookeeper-3.4.10/conf 디렉터리에 있는 llzoo_ 수정sample.cfg의 이름,zoo로 변경합니다.cfg - 명령: mv zoo_sample.cfg zoo.cfg8.3 zoo 수정.cfg ① dataDir=/var/zfg/zookeeper ② server.1=node02:2888:3888 ③ server.2=node03:2888:3888 ④ server.3=node04:2888:38888.4 dataDir 디렉터리에 myid 파일을 만들고 이 파일에 현재 노드 ID 번호를 적습니다. ID 번호는 서버의 접두사(1,2,3)8.5입니다. 설정된 zookeeper 설치 패키지를 node03 node04로 복사합니다. 명령:
  • scp -r zookeeper-3.4.10 node03:·pwd·
    scp -r zookeeper-3.4.10 node04:·pwd·
    

    8.6 복제가 완료되면 각 노드에 myid 번호를 만들고 ID 번호는 순차적으로 8.9 Zookeeper를 시작합니다. 명령: zkServer.sh start Zookeeper 상태를 보십시오. 하나는 leader이고 둘은 follower입니다. 명령: zkServer.sh status
  • 9.포맷 NameNode 9.1은 node01, node02, node03에서 다음과 같은 명령을 실행합니다. 명령: hadoop-daemon.sh start journalnode 9.2 랜덤으로 NameNode 실행(node01 또는 node02)을 선택하십시오. 명령:
  • hdfs namenode -format
    hadoop-daemon.sh start namenode
    

    9.3 다른 NameNode 노드에서 다음 명령을 실행합니다. 명령: hdfs namenode -bootstrapStandby
  • 10.ZKFC 시작 - 명령: hdfs zkfc -formatZK
  • **11.모든 노드에서 프로세스 닫기 ** - 명령: stop-dfs.sh
  • **12.HDFS 시작 ** - 명령: start-dfs.sh
  • 이로써 고가용성 완전 분산형 HDFS 구축 완료
    미완성 미계속...

    좋은 웹페이지 즐겨찾기