본문 바로가기
BigData 기술/Hadoop

[HDFS] 데이터노드 추가/삭제/디스크고장 조치

by 잇서니 2019. 10. 30.
반응형

데이터노드 추가

  • common
    • /etc/hosts
    • yum (yum pluigin 설치, repo 파일 배포 등)
    • package 설치 (jdk, python 등)
    • system 설정 (java_home, selinux 해제 등)
    • user 설정 (root계정, ndap계정 ssh-key 생성)
    • ssh (key 배포)

 

  • ndap
    • package 설치 (mysql-connector, hive, ndap)

 

  • hadoop
    • datanode (설치, dir 생성)
    • nodemanager(설치, dir 생성)

 

  • hbase, phoenix, spark ...
    • 설치 및 라이브러리 심볼릭링크 등

 

  • mysql
    • 계정, 비번, 권한

 

  • conf
    • hadoop, hive 등 설정파일 배포

 

추가할 노드 아래 파일에 추가하고 hdfs dfsadmin -refreshNodes 하면 재시작 안 하고 추가 된다네,

<property>
    <name>dfs.hosts</name>
    <value>/home/hadoop/hadoop/conf/include_server</value>
</property>

 

데이터노드 삭제

  • nodemanager stop
    • 배치시간에 디컴할 노드에 리소스 할당되지 않도록

 

  • dfs.hosts.exclude
    • 디컴할 노드들 hostname 작성

 

  • hdfs dfsadmin -refreshNodes
    • 바로 디컴되는건 아니고 replication factor 만족할 때까지 decommissioning 상태
    • replication factor 만큼 복제 완료되면 해당 데이터노드는 dead로 인식됨

 

balancer

  • 데이터노드 사용률 확인
    • hdfs dfsadmin -report

 

  • 데이터노드를 추가한 후, 새로운 데이터노드에 저장된 데이터 용량은 매우 적고 나머지 데이터노드는 상대적으로 많다.
  • 불균형이 발생하면 특정 데이터노드에 블럭이 모여있는 꼴이다.
    • 그러면 특정 데이터노드의 부하가 커진다.
    • 또한 hdfs 사용량이 많아져 hdfs 용량 임계치(dfs.datanode.du.reserved)에 다다르면, 네임노드가 safemode에 진입하게 된다. (hdfs 쓰기작업 불가해짐)
  • 그러니 용량 balance를 맞춰주기 위해 balancer를 실행한다.

 

 

데이터노드 디스크 고장 조치

  • 데이터노드 stop
  • 고장난 디스크 mount 해제
  • 디스크 교체
    • RAID 0 또는 non-RAID
    • 파티션 (fdisk)
    • 파티션 포맷 (mkfs)
    • 마운트
      • /etc/fstab
        • uuid
          • 고장난 기존 디스크의 uuid로 설정되어 마운트오류 발생
          • blkid로 uuid 확인 후, fstab에 설정
        • 마운트 영구적용
  • 데이터노드 start

 

참고) 데이터노드 장애시 데이터 손실 확률

 

Hadoop 데이터노드 장애와 데이터 손실

하둡을 공부하고 운영해보신 분이라면 데이터를 기본 3개의 64MB 복제본으로 나누어 분산 저장한다는 것을 잘 알고계실 겁니다. 이로인해 호스트나 디스크 장애가 발생할때도 하둡은 나머지 2

devopben.tistory.com

 

반응형

댓글