hadoop 집단 구축

10996 단어

hadoop 집단 구축


하나.집단 계획


bigdata01
bigdata02
bigdata03
NameNode
NameNode
JournalNode
JournalNode
JournalNode
DataNode
DataNode
DataNode
ZK
ZK
ZK
ResourceManager
ResourceManager
NodeManager
NodeManager
NodeManager

2.클러스터 구축


1. 서버의 호스트 이름, 호스트 이름 및 IP 매핑을 수정합니다.


1.1 호스트 이름 수정
vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=bigdata01    ### // , -

1.2 호스트 이름 및 IP 매핑 수정
vim /etc/hosts

192.168.20.66   bigdata01
192.168.20.67   bigdata02
192.168.20.68   bigdata03

1.3 네트워크 서비스 재부팅, 구성 적용
service network restart

1.4 호스트 이름 수정 성공 여부 테스트
hostname

1.5 호스트 이름에 해당하는 IP 보기
hostname -i

1.6 호스트 간 상호 액세스, 네트워크 연결 여부 판단
 bigdata01 
ping bigdata02
ping bigdata03

 bigdata02 
ping bigdata01
ping bigdata03

 bigdata03 
ping bigdata01
ping bigdata02

2. 서버 간 SSH 기밀 유지 로그인 구성


2.1 서버bigdata01에서 아래 명령을 실행합니다
ssh-key gen -t rsa  #  

 
ssh-copy-id bigdata01
ssh-copy-id bigdata02
ssh-copy-id bigdata03

2.2 서버 bigdata02에서 아래 명령을 실행합니다
ssh-key gen -t rsa  #  

 
ssh-copy-id bigdata01
ssh-copy-id bigdata02
ssh-copy-id bigdata03

2.3 서버bigdata03에서 아래 명령을 실행합니다
ssh-key gen -t rsa  #  

 
ssh-copy-id bigdata01
ssh-copy-id bigdata02
ssh-copy-id bigdata03

2.4 구성이 완료되면 각 시스템에서 성공 여부를 테스트할 수 있습니다.
 bigdata01 
ssh bigdata02  ssh bigdata03 

2.5 사용할 수 없으면 사용할 수 없는 기계에서 ssh-copy-id 명령을 다시 실행합니다.

3. jdk 설치


3.1 jdk를/opt/module 디렉터리 아래로 압축 해제
tar -zxvf  jdk-8u231-linux-x64.tar.gz -C /opt/module

3.2 jdk 환경 변수 설정
vim /etc/profile
 
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

3.3 구성 적용
source /etc/profile

4. 서버 방화벽 닫기


4.1 방화벽 닫기
systemctl stop firewalld.service

4.2 방화벽 상태 확인
systemctl status firewalld.service

5. Zookeeper 클러스터 구축


5.1 zookeeper를/opt/module 디렉터리 아래로 압축합니다. (zookeeper는 이름에 -bin이 있는 가방을 다운로드해야 합니다.)
tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz -C /opt/module/

5.2 zookeeper 아래에 zkData 디렉토리를 만듭니다.
mkdir zkData

5.3 conf 디렉토리 아래의 구성 파일 zoo_ 이름 바꾸기simple.cfg
mv zoo_simple.cfg zoo.cfg

5.4 zoo를 수정합니다.cfg 파일.
  
dataDir=/opt/module/zookeeper-3.4.10/zkData  
  
#######################cluster########################## 
server.1=bigdata01:2888:3888
server.2=bigdata02:2888:3888
server.3=bigdata03:2888:3888

5.5 zkData 디렉토리 아래에 myid 파일 만들기
touch myid
 myid 1, zoo.cfg server.1 1。

5.6 설정된zookeeper를 다른 두 서버로 복사하여 myid 파일의 값을 대상으로 하는 서버의 값을 수정합니다.5.7은 각각 Zookeeper를 시작합니다.
[root@bigdata01 zookeeper-3.5.6]# bin/zkServer.sh start
[root@bigdata02 zookeeper-3.5.6]# bin/zkServer.sh start
[root@bigdata03 zookeeper-3.5.6]# bin/zkServer.sh start

5.8 시동 상태를 보면 리더가 한 대 있고 이틀 동안 팔로워가 있어 시동이 성공했음을 나타낸다.
[root@bigdata01 zookeeper-3.5.6]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.6/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

[root@bigdata02 zookeeper-3.5.6]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.6/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader

[root@bigdata03 zookeeper-3.5.6]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.6/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

5.9 시작 과정에서 org가 나타나면apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Address unresolved: bigdata03:3888 이상, bigdata03:3888 뒤에 빈칸이 있기 때문입니다.

6.hadoop 클러스터 구축


6.1 hadoop을 설치합니다.6.2 Hadoop의 etc/hadoop 디렉터리 아래의 Hadoop-env를 수정합니다.sh 파일.
#  jdk 
JAVA_HOME=/opt/module/jdk1.8.0_144 
#  , 。
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
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root

6.3 수정된 etc/hadoop 디렉터리 아래의core-site.xml 파일.

   
   
      fs.defaultFS
      hdfs://mycluster
      
   
   
      hadoop.tmp.dir
      /opt/module/hadoop-3.2.1/data/tmp
   
   
   
   
      ha.zookeeper.quorum
      bigdata01:2181,bigdata02:2181,bigdata03:2181
   
   


6.4 Hadoop의 etc/hadoop 디렉터리 아래hdfs-site를 수정합니다.xml 파일.

  
  
    dfs.nameservices
    mycluster
  
  
  
  
    dfs.ha.namenodes.mycluster
    nn1,nn2
  
  
  
  
    dfs.namenode.rpc-address.mycluster.nn1
    bigdata01:9000
  
  
  
  
    dfs.namenode.rpc-address.mycluster.nn2
    bigdata02:9000
  
  
  
  
    dfs.namenode.http-address.mycluster.nn1
    bigdata01:50070
  
  
  
  
    dfs.namenode.http-address.mycluster.nn2
    bigdata02:50070
  
  
  
  
    dfs.namenode.shared.edits.dir
    qjournal://bigdata01:8485,bigdata02:8485,bigdata03:8485
  
  
  
  
    dfs.ha.fencing.methods
    shell(/bin/true)
  
  
  
  
    dfs.ha.fencing.ssh.private-key-files
    /root/.ssh/id_rsa
  
  
  
  
    dfs.journalnode.edits.dir
    /opt/hadoop-3.1.2/data/jn
  
  
  
  
    dfs.permissions.enables
    false
  
  
  
  
    dfs.client.failover.proxy.provider.mycluster
    org.apache.hadoop.hdfs.server.namenode.ha.Configu redFailoverProxyProvider
  
  
  
  
    dfs.ha.automatic-failover.enabled
    true
  
  


6.5 Hadoop의 etc/hadoop 디렉터리 아래의 yarn-site를 수정합니다.xml 파일.


    
       yarn.nodemanager.aux-services
       mapreduce_shuffle
   
   
    
   
       yarn.resourcemanager.ha.enabled
       true
   

     
   
       yarn.resourcemanager.cluster-id
       cluster-yarn1
   

   
       yarn.resourcemanager.ha.rm-ids
       rm1,rm2
   

   
       yarn.resourcemanager.hostname.rm1
       bigdata01
   

   
       yarn.resourcemanager.hostname.rm2
      bigdata02
   

     
   
       yarn.resourcemanager.zk-address
       bigdata01:2181,bigdata02:2181,bigdata03:2181
   

     
   
       yarn.resourcemanager.recovery.enabled
       true
   

      
   
       yarn.resourcemanager.store.class
       >org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
   



6.6 고가용 Hadoop 클러스터 시작
  • hdfs 클러스터 시작..
  • 세 서버에서 각각journalnode를 시작합니다..
  •  hadoop bin 
    ./hdfs --daemon start journalnode
    
  • NameNode가 구성된 모든 서버에서 NameNode 포맷..
  • #  bigdata01 hadoop bin 
    ./hdfs namenode -format
    
  • 위의 명령을 실행한 서버에서 NameNode를 시작합니다
  • #  bigdata01 hadoop bin 
    ./hdfs --daemon start namenode
    
  • 다른 NameNode가 구성된 서버에서 NameNode 정보를 동기화합니다
  • #  bigdata02 hadoop bin 
    ./hdfs namenode -bootstrapStandby
    
  • 포맷 zk
  • #  bigdata01 hadoop bin 
    ./hdfs zkfc -formatZK
    
  • Hadoop 집단을 시작합니다
  • #  bigdata01 hadoop sbin 
    ./start-dfs.sh
    
  • 다른 서버의 DataNode 시작..
  • #  bigdata02 bigdata03 bin 
    ./hdfs --daemon start datanode
    
  • yarn 집단을 시작합니다
  • 리소스 관리자를 설정한 서버에서 리소스 관리자를 시작합니다.
  • #  bigdata01 hadoop sbin 
    ./start-yarn.sh
    
  • 나머지 서버에서 nodemanager를 시작합니다..
  • #  bigdata02 bigdata03 hadoop bin 
    ./yarn --daemon start nodemanager
    

    6.7 고가용성 테스트.
  • hdfs 고가용 테스트..
  • NameNode 상태 보기..
  • #  bigdata01 bigdata02 hadoop bin 
    ./hdfs haadmin -getServiceState nn1
    ./hdfs haadmin -getServiceState nn2
    
  • NameNode 상태를 수동으로 전환합니다
  • ##  nn1 standby,nn2 active
    #  standby NameNode hadoop bin 
    ./hdfs haadmin -transitionToActive nn1
    #  NameNode active。
    
    #  active NameNode hadoop bin 
    ./hdfs haadmin -transitionToStandby nn2
    #  NameNode standby。
    
  • 테스트 고가용

  • NameNode 상태가 active인 서버의 active를 중지합니다.
    #  active NameNode hadoop bin 
    ./hdfs --daemon stop namenode
    #  standby NameNode , active, 。
    
  • 테스트 yarn 고가용
  • yarn의 상태를 조회합니다
  • #  bigdata01 bigdata02 hadoop bin 
    ./hdfs rmadmin -getServiceState rm1
    ./hdfs rmadmin -getServiceState rm2
    
  • 수동으로 yarn 상태를 전환합니다
  • ##  rm1 standby,rm2 active
    #  standby resourcemanager hadoop bin 
    ./yarn rmadmin -transitionToActive rm1
    #  resourcemanager active。
    
    #  active Nresourcemanager hadoop bin 
    ./hdfs rmadmin -transitionToStandby rm2
    #  resourcemanager standby。
    
  • 테스트 고가용

  • 리소스 관리자 상태가active 서버인 리소스 관리자를 정지합니다.
    #  active resourcemanager hadoop bin 
    ./yarn --daemon stop resourcemanager
    #  standby resourcemanager , active, 。
    

    좋은 웹페이지 즐겨찾기