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
참고 블로그
데이터노드를 삭제하는 방법도 있다.
먼저 데이터노드를 삭제하기 위해서는, 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를 재부팅하는 방법밖에 없다고 한다.
참고 블로그, 스택오버플로우
'Tech > Hadoop' 카테고리의 다른 글
[Hadoop] hadoop 3.3.3 버전 docker로 설치하기 (0) | 2022.06.22 |
---|---|
[Hadoop]Docker Base 하둡 설치기 (2) (0) | 2022.03.20 |
[Hadoop]core-site.xml, hdfs-site.xml (0) | 2022.03.11 |
[Hadoop]Docker Base 하둡 설치기 (1) (1) | 2022.03.10 |
[Hadoop]하둡 완벽가이드 요약 (7) (0) | 2022.03.07 |