본문 바로가기
개발자/면접

[면접][Hadoop] 맵리듀스(MapReduce) 관련 면접 주요 질문

by hs_seo 2017. 9. 25.


-맵리듀스란?

  • 하둡 클러스터를 이용하여 대용량데이터를 병렬로 처리하는 프레임워크
  • 맵과 리듀스 2단계로 데이터를 분석


-Context Object의 사용법은?

  • 하둡의 매퍼가 다른 하둡 시스템과 통신하기 위해서 사용


-리듀서의 코어 메소드는?

  • setup()
    • 입력데이터 사이즈, 힙 사이즈, distribute cache 설정 등을 진행
  • reduce()
    • 입력된 데이터를 이용하여 리듀스 작업 진행
  • cleanup()
    • 리듀스의 마지막에 임시 파일을 삭제하기 위해 한번만 호출


-파티셔닝, 셔플, 소트 페이즈에 대해서 설명하시오.

  • 셔플
    • 맵 태스크의 처리 결과로 임시 저장된 중간 파일을 리듀서로 넘기는 작업을 셔플
  • 소트
    • 맵 단계 결과를 리듀서로 넘기기 전에 키를 기준으로 자동으로 정렬을 진행 하는 것
  • 파티셔닝
    • 맵의 중간값을 리듀서의 입력으로 넘기기 전에 키 별로 분류하는 것
    • 해시 함수를 이용하여 키값을 분류
  • 파티션 -> 셔플 -> 소트 순으로 처리
    • 파티션으로 키값을 분류 하고
    • 셔플 단계로 다른 리듀서에서 처리해야할 데이터는 넘기고
    • 처리해야할 값을 정렬하고 리듀스 처리


- 컴바이너는?

  • 맵사이드 리듀서 or 로컬 리듀서
  • 맵의 중간 결과 파일을 미리 리듀싱 처리하여, 리듀서로 전달하는 데이터를 줄여서 속도를 높일 수 있음
  • I/O와 네트워크 트래픽 감소를 목적으로 디스크에 쓰기전 KV 쌍에 대한 전처리 수행


- HDFS 블록과 InputSplit는 어덯게 다른가?

  • HDFS 블록은 데이터를 물리적으로 나누는 단위이고 InputSplit는 맵리듀스의 입력으로 논리적으로 분할하는 단위이다. 
  • InputSplit은 매퍼의 개수에 의해 결정되고 사용자가 결정할 수 있다. 
  • 블록의 크기는 설정에 의해 고정되어 있다. 
  • InputSplist을 설정하지 않으면 HDFS블록 크기에 의해 결정된다. 


- RecordReader는?

  • InputSplit으로 부터 key/value 쌍을 읽어 들일때 사용


- Distributed Cache

  • 하둡의 맵리듀스 처리중 파일을 공유할 때 사용한다. 


- Heartbeat

  • 네임노드와 데이터노드 사이, 리소스 매니저와 노드 매니저 사이에 노드가 살아 있는지 확인하는 용도로 사용



반응형