Big Data

Hadoop 에서 DataNode 와 TaskTracker 제거 및 추가하기

kogun82 2013. 2. 8. 09:44

여러 이유로 인하여 DataNode에 문제 발생 시 해당 DataNode 제거 방법과 신규 DataNode 추가.

DataNode 제거하기 먼저 Master NameNode 서버의 mapred-site.xml 포함된 dfs.hosts.exclude, mapred.hosts.exclude 설정

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
	<property>
		<name>mapred.job.tracker</name>
		<value>210.218.222.238:9001</value>
	</property>
	<property>
		<name>mapred.system.dir</name>
		<value>/state/partition1/hadoop/hdfs/mapreduce/system</value>
	</property>
	<property>
		<name>mapred.local.dir</name>
		<value>/state/partition1/hadoop/hdfs/mapreduce/local</value>
	</property>
	<property>
		<name>dfs.hosts.exclude</name>
		<value>/home/hadoop/HADOOP/conf/excludes</value>
	</property>
	<property>
		<name>mapred.hosts.exculde</name>
		<value>/home/hadoop/HADOOP/conf/excludes</value>
	</property>
</configuration>


설정 이 후 변경 사항을 적용 시킬때에는 전체 재 실행 진행

운영 중인 Hadoop Cluster 에서 DataNode 제거하기 위해서는 설정한 excludes 파일에 DataNode의 도메인 설정

안정적인 운영을 위해서는 한 번에 한 대에서 두 대 까지만 제거하는 것을 추천

#excludes file

compute-0-0
compute-0-1
compute-0-2
compute-0-3
compute-0-4

 

excludes file을 설정 후 다음 명령어 실행 하여 DataNode 제거

#명령어 실행
$HADOOP/bin/hadoop dfsadmin -refreshNodes 

#명령어 실행
$HADOOP/bin/hadoop dfsadmin -report 

#장비 상태가 Decommission In Progress > Decommissioned 상태 변경 후 장비 제거
Decommission Status :


클러스터 재 실행을 위해 conf/slaves 파일을 현행화 하고 excludes 파일을 초기화
(excludes 파일과 slaves 파일에 동시에 같은 호스트 정보가 기술되어 있을 때는 excludes 파일 정보가 우선)

분산 처리되어 저장된 데이터의 균형을 맞추기 위해 다음과 같은 명령어를 실행

$HADOOP/bin/hadoop balancer

 

Ctrl+C 를 통해 빠져나올 수 있으며, -threshold 옵션을 이용하여 퍼센티지 값을 설정 (기본값 10%)