HADOOP 설치 및 테스트

2024. 8. 8. 07:30DATA/HADOOP_HIVE

반응형

hadoop-2.7.0.zip
1.00MB

 

 

■하둡 환경 변수 설정

 

 

 

 

 

 

 

 

 

■ jdk

 

 

 

 

 

변수 추가

 

path 설정

 

 

 

 

■ template 확장자 변경

 

 

 

 

 

 

MapReduce 작업이 사용할 프레임워크를 지정한다. 
 

 
  mapreduce.framework.name: 이 속성은 MapReduce 작업을 실행할 프레임워크를 설정한다.


  - yarn: yarn으로 설정하면, MapReduce 작업이 YARN (Yet Another Resource Negotiator) 프레임워크를 사용하여 실행된다. 이는 Hadoop의 리소스 관리를 위한 기본 프레임워크이다.
  - local: local로 설정하면, MapReduce 작업이 로컬 모드에서 실행된다. 즉, 모든 작업이 동일한 JVM 프로세스에서 실행된다.
  - classic: classic으로 설정하면, 오래된 Hadoop MapReduce 프레임워크를 사용하여 작업이 실행된다. 최신 Hadoop 버전에서는 YARN이 기본 프레임워크이다.
 
- YARN 프레임워크 사용: yarn으로 설정하면, MapReduce 작업은 YARN ResourceManager와 NodeManager를 통해 자원을 관리하며 실행되고 자원 사용을 보다 효율적으로 관리하고, 클러스터 자원의 활용도를 높이는 데 도움을 준다.
- 기본 설정: 최신 Hadoop 배포판에서는 YARN이 기본 설정으로 사용되므로, 이 속성을 명시적으로 설정하지 않아도 기본값이 yarn일 수 있다.
 

 

 

 

■ core-site.xml 파일에 사용되는 표준 구성

 

 

 

 
1. fs.default.name:
   - Hadoop의 기본 파일 시스템을 정의한다.
   - hdfs://0.0.0.0:9000은 Hadoop 분산 파일 시스템(HDFS)을 기본으로 사용하며, 네임노드가 0.0.0.0에서 9000 포트로 서비스된다는 의미이다.
   - 0.0.0.0는 모든 IP 주소를 수신하는 네임노드를 나타내며, 실제로는 네임노드가 실행 중인 서버의 IP 주소나 호스트 이름으로 바꿔야 한다.

2. hadoop.tmp.dir:
   - Hadoop의 임시 디렉터리를 설정한다.
   - C:/Project/hadoop-2.7.0/tmp은 Windows 환경에서 임시 데이터를 저장할 위치를 나타낸다.
   - 이 디렉터리는 Hadoop의 임시 파일, 로그, 하둡의 다양한 임시 작업에 사용된다.

 

 

 

 

 

■  hdfs-site.xml  Hadoop 분산 파일 시스템(HDFS) 관련 설정

 

이 파일의 목적은 HDFS의 동작 방식을 정의하는 것이다. 
 
  
- Hadoop에서의 파일 경로: Hadoop은 내부적으로 UNIX 스타일 경로를 기대하기 때문에, Windows에서 경로를 사용할 때는 file:///를 사용해 절대 경로를 지정해야 한다.

수정된 hdfs-site.xml 설정은 다음과 같다:

 

 
- dfs.replication: 이 설정은 데이터 블록의 복제본 수를 지정한다. 일반적으로 클러스터에서 3으로 설정되지만, 단일 노드 설치에서는 1로 설정한다.
- dfs.permissions: HDFS의 권한 관리를 비활성화한다. 테스트 환경에서는 종종 false로 설정하지만, 실제 운영 환경에서는 권장하지 않는다.
- dfs.namenode.name.dir: 네임노드 데이터가 저장될 디렉토리를 지정한다. 경로는 file:///을 사용하여 절대 경로로 지정한다.
- dfs.datanode.data.dir: 데이터노드 데이터가 저장될 디렉토리를 지정한다. 역시 file:///을 사용하여 절대 경로로 지정한다.
 

 

 

 

■ YARN (Yet Another Resource Negotiator) 

 

 

YARN의 NodeManager가 MapReduce 작업을 처리할 때 필요한 셔플 서비스를 지원하도록 구성한다.



1. yarn.nodemanager.aux-services:
   -  NodeManager가 실행할 추가(보조) 서비스를 지정한다.
   - 설정 값: mapreduce_shuffle로 설정하면 NodeManager가 MapReduce 작업의 중간 데이터를 셔플링(shuffle)하기 위한 셔플 서비스를 제공한다.

2. yarn.nodemanager.aux-services.mapreduce_shuffle.class:
   -  지정된 mapreduce_shuffle 서비스에 사용될 클래스를 정의한다.
   - 설정 값: org.apache.hadoop.mapred.ShuffleHandler 클래스는 MapReduce 작업의 중간 데이터를 셔플링하기 위한 핸들러 클래스이다.

3. yarn.log-aggregation-enable:

 

- YARN 로그 집계를 활성화할지 여부를 결정한다. true로 설정하면, 각 작업의 로그 파일이 NodeManager에서 수집되어 Hadoop의 중앙 로그 디렉토리로 집계되고 로그 분석 및 디버깅에 유용하다.

 

 

 
- 셔플 서비스 활성화: 이 설정은 YARN의 NodeManager에서 MapReduce 셔플 서비스를 활성화한다. 셔플 서비스는 맵 작업의 출력 데이터를 리듀스 작업으로 전달하는 역할을 한다.
- 클러스터 준비: 이 설정이 적용된 후, YARN 클러스터는 MapReduce 작업을 처리할 수 있으며, 특히 대규모 데이터 처리 작업에서 셔플링 과정을 효율적으로 수행할 수 있다.

이 설정을 yarn-site.xml에 추가하고 YARN을 다시 시작하면, NodeManager가 올바르게 MapReduce 작업을 지원하도록 셔플 서비스를 활성화한다.

 

 

 

 

4. yarn.nodemanager.pmem-check-enabled:

 

- NodeManager가 물리적 메모리 사용량에 대해 검사를 수행할지를 설정한다.

  • true: true로 설정하면 NodeManager가 애플리케이션의 물리적 메모리 사용량을 검사하여 할당된 메모리 한도를 초과하지 않도록 한다.
  • false: false로 설정하면 NodeManager가 이러한 검사를 수행하지 않는다.

false로 설정할 경우

  • 자원 사용: 메모리 검사 오버헤드로 인한 성능 문제를 경험하고 있거나, 애플리케이션이 메모리 사용에 대해 잘 동작하는 경우 false로 설정할 수 있다.
  • 잠재적 위험: 물리적 메모리 검사 비활성화는 애플리케이션이 할당된 메모리 한도를 초과하여 자원을 과도하게 사용하거나, NodeManager의 안정성에 영향을 줄 수 있는 상황을 초래할 수 있다.

 

 

 

 

 5. yarn.nodemanager.vmem-check-enabled 

- yarn.nodemanager.vmem-check-enabled: 이 속성은 NodeManager가 가상 메모리 사용량을 검사할지 여부를 제어한다.
  - true: true로 설정하면 NodeManager는 애플리케이션이 할당된 가상 메모리(Virtual Memory) 한도를 초과하지 않도록 검사한다.
  - false: false로 설정하면 NodeManager는 가상 메모리 사용량에 대한 검사를 수행하지 않는다.

 

 

false로 설정할 경우



- 성능: 가상 메모리 검사 오버헤드로 인해 성능에 영향을 줄 수 있다. 이 설정을 false로 설정하면 검사 오버헤드를 줄일 수 있다.
- 자원 관리: 가상 메모리 검사를 비활성화하면 애플리케이션이 할당된 메모리 한도를 초과하여 자원을 과도하게 사용할 수 있는 상황이 발생할 수 있다. 이는 클러스터의 안정성에 영향을 미칠 수 있다.
 

 

 

■ 초기화

 

namenode 초기화

 

 

 

■Demon 실행

 

 

 

 

 

 

WordCount.zip
0.00MB

 

■map reduce 환경변수 설정

 

 

-compile

 

 

 

■ 실행

 

 

1. **HDFS 디렉토리 생성**:
 
   hdfs dfs -mkdir -p /user/newuser/input
   

2. **파일 업로드**:
 
   hdfs dfs -put ./bigdata.txt /user/newuser/input
   

3. **JAR 파일 생성**:
 
   jar -cvf wordcount.jar WordCount*.class
   

4. **MapReduce 작업 실행**:
 
   hadoop jar ./sample/wordcount.jar WordCount /user/newuser/input /user/newuser/output

 

 

 

C:\Project\hadoop-2.7.0>hdfs dfs -ls /user/newuser/ouput
Found 2 items
-rw-r--r--   1 amuse supergroup          0 2024-08-09 07:39 /user/newuser/ouput/_SUCCESS
-rw-r--r--   1 amuse supergroup         88 2024-08-09 07:39 /user/newuser/ouput/part-r-00000

C:\Project\hadoop-2.7.0>hdfs dfs -cat /user/newuser/ouput/part-r-00000

반응형

'DATA > HADOOP_HIVE' 카테고리의 다른 글

HIVE 설치  (0) 2024.08.09
01 mysql  (0) 2024.08.06