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