데이터노드가 기존에 하나라, 분산 테스트를 위해 3개로 늘리려 한다.
기존 :
192.168.192.10 HADOOP1 ( NAME NODE )
192.168.192.11 HADOOP2 ( DATA NODE )
변경
192.168.192.10 NN1
192.168.192.20 DN1 ( NAME NODE 1 )
192.168.192.21 DN2 ( NAME NODE 2 )
192.168.192.22 DN3 ( NAME NODE 3 )
1. DATA NODE 수정
(1). 아래 3개의 파일을 수정한다.
네임노드의 호스트명이 바뀐것과, slaves의 호스명과 리스트가 늘어간것을 생각하고 편집.
- core-site.xml
- hdfs-site.xml
- slaves
(2). 편집한 파일을 데이터노드 서버에 전송한다.
scp core-site.xml DN1:/hadoop/hadoop-2.7.5/etc/hadoop/
scp core-site.xml DN2:/hadoop/hadoop-2.7.5/etc/hadoop/
scp core-site.xml DN3:/hadoop/hadoop-2.7.5/etc/hadoop/
scp yarn-site.xml DN1:/hadoop/hadoop-2.7.5/etc/hadoop/
scp yarn-site.xml DN2:/hadoop/hadoop-2.7.5/etc/hadoop/
scp yarn-site.xml DN3:/hadoop/hadoop-2.7.5/etc/hadoop/
(3). 시작
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
작전에, datanode 관련 또는 tmp 파일들을 노드 복제할때 같이 복제했다면 반드시 삭제하고 구동을 해야한다.
그렇지 않으면 name node 입장에서 하나의 클러스터밖에 받아들이지 못한다.
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
DFS 시작
[root@NN1 hadoop]# $HADOOP_PREFIX/sbin/start-dfs.sh Starting namenodes on [NN1] The authenticity of host 'nn1 (192.168.192.10)' can't be established. RSA key fingerprint is 1f:9c:34:81:0e:a1:c3:e8:b4:2e:72:b8:2b:53:9a:50. Are you sure you want to continue connecting (yes/no)? yes NN1: Warning: Permanently added 'nn1' (RSA) to the list of known hosts. NN1: starting namenode, logging to /hadoop/hadoop-2.7.5/logs/hadoop-root-namenode-NN1.out DN3: starting datanode, logging to /hadoop/hadoop-2.7.5/logs/hadoop-root-datanode-DN3.out DN1: starting datanode, logging to /hadoop/hadoop-2.7.5/logs/hadoop-root-datanode-DN1.out DN2: starting datanode, logging to /hadoop/hadoop-2.7.5/logs/hadoop-root-datanode-DN2.out Starting secondary namenodes [0.0.0.0] 0.0.0.0: starting secondarynamenode, logging to /hadoop/hadoop-2.7.5/logs/hadoop-root-secondarynamenode-NN1.out
YARN 실행
[root@NN1 hadoop]# $HADOOP_PREFIX/sbin/start-yarn.sh starting yarn daemons starting resourcemanager, logging to /hadoop/hadoop-2.7.5/logs/yarn-root-resourcemanager-NN1.out DN3: starting nodemanager, logging to /hadoop/hadoop-2.7.5/logs/yarn-root-nodemanager-DN3.out DN2: starting nodemanager, logging to /hadoop/hadoop-2.7.5/logs/yarn-root-nodemanager-DN2.out DN1: starting nodemanager, logging to /hadoop/hadoop-2.7.5/logs/yarn-root-nodemanager-DN1.out
그러면 아래와 같이 네임노드 서버에서 데이터노드가 붙은것을 확인할 수 있다.
번외 :
만약 운영중에 데이터노드를 추가해야한다면, 네임노드를 정지하면 안되므로, 해당 데이터노드서버에서
$HADOOP_PREFIX/sbin/hadoop-daemon.sh start datanode 를 호출해주면 된다.