Hadoop & Mapreduce
HDFS에서 하나 이상의 데이터 노드 해지하기
윤's군
2013. 10. 21. 17:46
이 방법은 클러스터를 다시 시작하지 않고 데이터 손실 없이 데이터 노드를 해지하는 방법이다.
1. 먼저 클러스터 예외 목록 파일을 네임노드에 생성한다.
ex) 여기서는 hadoop/conf/ 디렉토리에 noslaves라는 클러스터 예외 목록파일 을 생성하였다.
vi conf/noslaves
slave1
slave2
// slave1과 slave2 데이터 노드 해지한다.
2. conf/hdfs-stie.xml 파일에 다음과 같이 작성한다.
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop/conf/noslaves</value>
</property>
여기서 <value> </value>사이에 들어가야할 값은 위에서 작성한 클러스터 예외 목록 파일의 풀 네임 경로이다.
3. 그리고 나서 다음의 명령어를 실행하여 데이터 노드를 해지한다.
$bin/hadoop dfsadmin -refreshNodes
이 때 데이터 복사가 이루어지므로 상당한 시간일 걸릴 수 있다.
4. 만약 해지된 데이터 노드를 다시 추가시키고 싶다면 클러스터 예외 목록 파일에서 해당 노드를 제거한후 $bin/hadoop dfsadmin -refreshNodes 명령어를 실행한다.
ex) slave1을 다시 데이터 노드로 추가시키고 싶을때
vi conf/noslaves
slave2
$bin/hadoop dfsadmin -refreshNodes