설정파일위치 : /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 |