하둡의 맵리듀스에 대한 설명은 다음링크를 참조한다.
맵리듀스를 운영하는 2가지 방법을 알아본다. 첫번째는 전통적인 하둡의 맵리듀스를 사용하는 방식과 두번째는 YARN을 사용하는 방식이다. 각 방식에 대해 알아보자.
맵리듀스1
Job : 클아이언트가 수행하는 작업 단위. 하둡은 Job을 맵 태스크와 리듀스 태스크로 나우어 실행한다.
Jobtracker : Tasktracker들이 수행할 태스크를 스케쥴링
Tasktracker : 태스크를 수행하고 데이터 처리가 완료되면 Jobtracker에 결과를 보냄. 만약 태스크가 실패하면 Jobtracker가 다른 Tasktracker를 통해 데이터를 처리함. TaskTracker는 hearbeat를 주기적으로 Jobtracker로 전송.
맵리듀스2(YARN)
리소스 매니저 : 클러스터에서 리소스의 사용을 관리, 최적의 데이터 노드 검색. 전체 클러스터의 시스템 자원 관리
노드 매니저 : 컨테이너들을 관리. 맵리듀스의 태스크트래커 기능과 유사. 컨테이너 실행, 라이프사이클 모니터링.
컨테이너 : 하나의 서버에서 여러 컨테이너가 실행될 수 있음. 컨테이너 단위로 애플리케이션을 실행하고 상태를 스케쥴링
애플리케이션 마스터 : 하나의 애플리케이션에 하나의 마스터 할당. 애플리케이션에 필요한 리소스 스케줄링. 컨테이너 내부에서 실행.
맵리듀스가 아닌 YARN을 사용하는 이유?
- 하둡1.0에서는 무조건 하둡기반 맵리듀스API 프로그램만 사용 가능함
- 잡트래커는 SPOF, 잡트래커 메모리 부족시 태스크 실행 이슈
- 리소스 매니저를 통한 자원관리 가능. 얀을 통해 실행되는 애플리케이션은 자원을 배분함.
참고문헌 : 하둡완벽가이드
'빅데이터 > 하둡' 카테고리의 다른 글
Spark 개발시, main/resources 패키지에 hdfs-site.xml, core-site.xml 등을 넣는 이유 (0) | 2024.08.13 |
---|---|
macOS 로컬에서 스파크 실행하기 (0) | 2021.04.21 |
하둡 맵리듀스 접근법 (0) | 2020.11.24 |
HDFS cilent 사용시 HA구성된 node 연결하기 (0) | 2020.03.11 |
pyspark에서 gzip으로 압축되어 있는 파일 읽는 방법 (0) | 2020.02.11 |
pyspark에러 ImportError: No module named XXXX (1) | 2020.02.10 |