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

+ Recent posts