설정파일위치 : /usr/local/hadoop-2.7.4/etc/hadoop/


[hadoop@master hadoop]$ cd /usr/local/hadoop-2.7.4/etc/hadoop/



1. 환경파일 # hadoop-env.sh

[hadoop@master hadoop]$ vi hadoop-env.sh 

export JAVA_HOME=/usr/local/jdk1.8.0_151    //JDK 경로등록

export HADOOP_OPTS="$HADOOP_OPTS-Djava.library.path=/usr/local/hadoop-2.7.4/lib/native"

//64비트 충돌문제 (맨마지막에 추가, 안해도 상관없음)


2. 보조네임노드를 실행할 서버 설정 # masters

- 한 대로 하려면 localhost로 지정. (default로 지정되어 있음)


3. 데이터노드를 실행할 서버 설정 # slaves

- 한 대로 하려면 localhost 지정. (default로 지정되어 있음)

- 데이터 노드가 여러 개이면 라인단위로 서버이름을 설정하면 된다.


[hadoop@master hadoop]$ vi slaves

slave1

slave2


4. 하부시스템 설정파일 # core-site.xml

- 로그파일네트워크 튜닝, I/O 튜닝파일 시스템 튜닝압축 등 하부 시스템 설정파일

HDFS와 맵리듀스에서 공통적으로 사용할 환경정보 설정

- hadoop-core-1.x.x.jar 파일에 포함되어 있는 core-default.xml을 오버라이드 한 파일

- core-site.xml에 설정 값이 없을 경우 core-default.xml에 있는 기본 값을 사용

- 공통 속성 정보 : http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml


[hadoop@master hadoop]$ vi core-site.xml

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://master:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/local/hadoop-2.7.4/tmp</value>

</property>

</configuration>


5. HDFS에서 사용할 환경정보 # hdfs-site.xml

hadoop-core-2.2.0.jar 파일에 포함되어 있는 hdfs-default.xml을 오버라이드 한 파일

- hdfs-site.xml에 설정 값이 없을 경우 hdfs-default.xml에 있는 기본 값을 사용

- 데이터 저장경로 변경

* HDFS : 하둡 분산 파일 시스템

- HDFS 속성 정보 : http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml


[hadoop@master hadoop]$ vi hdfs-site.xml

<configuration>

<property>

    <name>dfs.replication</name>

    <value>3</value> //데이터를 1개만 복사:가상분산모드, 3일경우:완전분산모드

</property>

<property>

    <name>dfs.permissions.enabled</name>

    <value>false</value>

</property>

<property>

    <name>dfs.webhdfs.enabled</name>

    <value>true</value>

</property>

<property>

    <name>dfs.namenode.http.address</name>

    <value>master:50070</value>

</property>

<property>

    <name>dfs.secondary.http.address</name>

    <value>backup:50090</value>

</property>

</configuration>


6. 맵리듀스에서 사용할 환경정보 설정 # mapred-site.xml 

- hadoop-core-x.x.x.jar 파일에 포함되어 있는 mapred-default.xml을 오버라이드 한 파일

- mapred-site.xml에 설정 값이 없을 경우 mapred-default.xml에 있는 기본 값을 사용

- 만약 mapred-site.xml이 존재하지 않을 경우 mapred-site.xml.template를 복사하여 사용


[hadoop@master hadoop]$ cp mapred-site.xml.template mapred-site.xml

[hadoop@master hadoop]$ vi mapred-site.xml

<configuration>

<property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

</property>

</configuration>


7. 셔플서비스 지정 # yarn-site.xml

- 수정 안함, default설정 따름

mapred-site.xml에서 yarn을 선택했을 경우 내용 추가

맵리듀스 프레임워크에서 사용하는 셔플 서비스를 지정


[hadoop@master hadoop]$ vi yarn-site.xml

<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>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>192.168.207.132</value>    //마스터IP

</property>

</configuration>


8. 다른노드 설정파일 동기화

* rsync : 원격 서버의 파일을 네트워크를 거쳐서 전송하는 실행 소프트웨어


- 다른 노드에서

# mkdir /usr/local/hadoop-2.7.4

# chown -R hadoop:hadoop /usr/local/hadoop-2.7.4/


- 마스터 노드에서

# cd /usr/local/hadoop-2.7.4

# rsync -av . hadoop@slave1:/usr/local/hadoop-2.7.4/

# rsync -av . hadoop@slave2:/usr/local/hadoop-2.7.4/

# rsync -av . hadoop@backup:/usr/local/hadoop-2.7.4/


# cd /usr/local/hadoop-2.7.3/etc/hadoop

# rsync -av . hadoop@backup:/usr/local/hadoop-2.7.4/etc/hadoop/

# rsync -av . hadoop@slave1:/usr/local/hadoop-2.7.4/etc/hadoop/

# rsync -av . hadoop@slave2:/usr/local/hadoop-2.7.4/etc/hadoop/


(slave에 jdk폴더 확인)



9. 네임노드 초기화

[hadoop@master ~]$ cd /usr/local/hadoop-2.7.4/bin

[hadoop@master bin]$ hdfs namenode -format


10. 프로세스 실행

[hadoop@master sbin]$ pwd

/usr/local/hadoop-2.7.3/sbin

[hadoop@master sbin]$ ./start-dfs.sh

[hadoop@master sbin]$ ./start-yarn.sh


11. 확인

[hadoop@master sbin]$ jps

4147 DataNode -----------------------> slave2

12373 NameNode

12703 SecondaryNameNode ----------> backup

12851 ResourceManager

13451 Jps

9590 NodeManager

13392 JobHistoryServer

[hadoop@slave1 sbin]$ jps

6001 DataNode

6103 NodeManager

6350 Jps


[hadoop@master hadoop]$ hdfs dfsadmin -refreshNodes

Refresh nodes successful 

[hadoop@master sbin]$ hdfs dfsadmin report


- 브라우저

http://master:50070 또는

http://master:50070/dfshealth.html 실행후 파일 시스템 상태 보여야 함 

1.x의 JobTracker는 http://master:8088/cluster 에서 확인할 수 있음



'강의노트 > 기타' 카테고리의 다른 글

[하둡] 환경 셋팅  (0) 2017.12.10
네트워크 기초  (0) 2017.10.15