1. 구성해둔 vm clone 및 host, hostname설정
# vi /etc/hosts
127.0.0.1 localhost
192.168.122.90 master
192.168.122.184 slave1
192.168.122.130 slave2
192.168.122.252 slave3
# vi /etc/hostname
각 master ~ slave3을 입력
# /bin/hostname -F /etc/hostname
으로 적용
# reboot
# ping master & ping slave1 & ping slave2 & ping slave3
접속 확인
2. SSH 공개키 공유
# scp -rp ~/.ssh/authorized_keys root@master:~/.ssh/authorized_keys
# scp -rp ~/.ssh/authorized_keys root@slave1:~/.ssh/authorized_keys
# scp -rp ~/.ssh/authorized_keys root@slave2:~/.ssh/authorized_keys
# scp -rp ~/.ssh/authorized_keys root@slave3:~/.ssh/authorized_keys
3. hadoop-env 설정 (전체)
# vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
## export HADOOP_PID_DIR=/root/tools/hadoop-3.1.2/pids
4. namenode 설정 (전체)
# vi $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
namenode를 master로 설정
5. hdfs-site.xml 수정 (전체)
수정 전에 namenode, datanode 디렉토리를 만든다 (master)
# chown root -R $HADOOP_HOME/namenode
# chmod 777 $HADOOP_HOME/namenode
# chown root -R $HADOOP_HOME/datanode
# chmod 777 $HADOOP_HOME/datanode
# vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml ( master에는 namenode, slave에는 datanode)
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permission</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/root/tools/hadoop-3.1.2/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/root/tools/hadoop-3.1.2/datanode</value>
</property>
</configuration>
6. 잡트래커 설정 (모든 노드)
# vi $HADOOP_HOME/etc/hadoop/mapred-site.xml (해당 파일 없을시엔 templete파일 복사 3.x에는 파일이 기본 존재)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
# vi $HADOOP_HOME/etc/hadoop/yarn-site.xml (이 부분에서 오타가 있어서 shuffle어쩌구가 없다는 오류가 있었음)
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
7. master, slave지정
이부분에서 긴 혼란이 있었다.
$HADOOP_HOME/etc/hadoop/ 에 masters와 slaves 파일을 각각만들어 해당내용을 명시해주는데 3.x에서는 slaves가 아니라 workers에 datanode들을 명시해준다........................................ㅠㅠ
# vi $HADOOP_HOME/etc/hadoop/masters
master
# vi $HADOOP_HOME/etc/hadoop/workers
master (datanode로도 사용할 경우에만)
slave1
slave2
slave3
8. 네임노드 포맷(master), 하둡 가동, HDFS 폴더 생성
# $HADOOP_HOME/bin/hdfs namenode -format (서버 새로 가동하게 되는 경우 실행시켜주는게 좋음)
# start-dfs.sh
# start-yarn.sh
성공. 이후 testing 방법은 독립, 의사 분산모드 때와 같다.
9. 그외 오류가 있을 때의 조치법들
# $HADOOP_HOME/sbin/stop-all.sh (실행중인게 있을경우 hadoop관련 all stop)
# systemctl stop firewalld.service (편의상)
# systemctl disable firewalld.service
# rm -Rf /tmp/hadoop-root/*
'공부 > hadoop' 카테고리의 다른 글
[Hadoop] 의사분산모드 설정 및 테스트 (0) | 2019.05.03 |
---|---|
[Hadoop] 단독 테스트 모드 practice (0) | 2019.05.03 |
[CentOS7] Hadoop 설치 및 설정 (0) | 2019.05.03 |
하둡 세팅 ( native 오류) (0) | 2019.05.01 |