2024. 8. 8. 07:30ㆍDATA/HADOOP_HIVE
■하둡 환경 변수 설정
■ jdk
■ 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로 설정하면 검사 오버헤드를 줄일 수 있다.
- 자원 관리: 가상 메모리 검사를 비활성화하면 애플리케이션이 할당된 메모리 한도를 초과하여 자원을 과도하게 사용할 수 있는 상황이 발생할 수 있다. 이는 클러스터의 안정성에 영향을 미칠 수 있다.
■ 초기화
■Demon 실행
■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 |