본문 바로가기

Tech/Hadoop

[Hadoop] Docker Data Node 추가, 삭제

 

GitHub - kangprog/hadoop_cluster_tutorial: 하둡클러스터 튜토리얼

하둡클러스터 튜토리얼. Contribute to kangprog/hadoop_cluster_tutorial development by creating an account on GitHub.

github.com

 

datanode의 용량이 꽉차는 경우, 추가해야하는 상황이 생길 것이다.

datanode04를 한번 추가해본다.

 

docker-compose.yml에서 datanode03 내용을 그대로 복사하여 datanode04로 만들어준다.

(volume도 datanode04 만들어준다)

 

그 후, docker-compose -f docker-compose.yml up -d datanode04

 

 

datanode04가 붙은 것을 확인 가능하다.

 

온프레미스 환경에서는 노드 세팅을 완료하고, refresh node 후, 꽉찬 용량을 새로운 노드로 옮기기 위해 리밸런싱을 한다고 한다.

 

refresh node 커맨드는 아래와 같다

hdfs dfsadmin -refreshNodes

 

리밸런싱 커맨드는 아래와 같다

-threshold 5 옵션은 각 노드간 저장량 차이를 5%이내로 한다고 한다.

sbin/start-balancer.sh -threshold 5

 

 

참고 블로그

 

하둡 데이터노드 추가/리밸런싱 하기 (Adding and Rebalancing Hadoop Datanodes)

하둡에 데이터 노드를 추가하는 경우는 공간이 모자라거나 성능향상이 필요할 때이다. 공간이 부족할 경우 어쩔 수 없이 노드를 추가해야하지만(아니면 과거 데이터를 지우거나) 그 외에 성능

parksuseong.blogspot.com

 

 

 

 

데이터노드를 삭제하는 방법도 있다.

 

먼저 데이터노드를 삭제하기 위해서는, namenode의 hdfs-site.xml에 dfs.hosts.exclude 속성이 있어야한다.

  <property>
    <name>dfs.hosts.exclude</name>
    <value>/etc/hadoop/dfs.hosts.exclude</value>
  </property>

 

없으면 namenode내 hdfs-site.xml에서 해당 속성을 만들고 재부팅해야한다.

hdfs-site.xml내 위 속성을 추가 한 후,

 

/etc/hadoop/dfs.hosts.exclude라는 빈 파일을 만든다. (파일명은 상관없다. 다만 속성 내 value와는 같아야함)

파일 내 IP:Port 형태의 제거 대상 데이터노드 정보를 작성하고 저장한다.

172.24.0.9:50010

이후, hdfs dfsadmin -refreshNodes 명령을 수행한다.

/etc/hadoop/dfs.hosts.exclude에 작성했던 데이터노드가 Decommissioned 상태임을 확인 할 수 있다.

 

Namenode WebUI에서 삭제된 데이터노드를 아예 지우는 방법은 Namenode를 재부팅하는 방법밖에 없다고 한다.

 

 

참고 블로그, 스택오버플로우

 

[Apache Hadoop] 데이터 노드 추가/제거 방법

DataNode 추가 1. NameNode의 hosts 파일에 추가할 DataNode IP,HOST 추가 vi /etc/hosts 2. NameNode의 includes 파일을 생성 또는 편집하여 추가할 node의 hostname을 추가 vi /hadoop설치경로/etc/hadoop/dfs.h..

heum-story.tistory.com

 

 

How do I correctly remove nodes in Hadoop?

I'm running Hadoop 1.1.2 on a cluster with 10+ machines. I would like to nicely scale up and down, both for HDFS and MapReduce. By "nicely", I mean that I require that data not be lost (allow HDFS ...

stackoverflow.com

 

반응형