데이터 로컬리티 기반 Hadoop 스케줄링 개선

데이터 로컬리티 기반 Hadoop 스케줄링 개선
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 Hadoop의 기존 스케줄러가 데이터 로컬리티를 충분히 고려하지 못한다는 문제를 지적하고, 작업 남은 시간과 데이터 전송 시간을 비교해 사전 선택된 노드에 데이터를 미리 전송하는 “리소스 프리패치” 방식을 제안한다. 비지역(map) 작업을 미리 선정하고, 가장 가까운 데이터 블록을 후보 노드로 옮겨 로컬성을 확보함으로써 전체 작업 완료 시간을 단축한다는 실험 결과를 제시한다.

상세 분석

Hadoop은 기본적으로 FIFO, Capacity, Fair와 같은 세 가지 스케줄링 정책을 제공한다. 이들 정책은 작업을 할당할 때 데이터 로컬리티를 “가능하면” 고려하지만, 실제 할당 과정에서 네트워크 대역폭, 클러스터 자원 상황, 작업 대기열 길이 등 복합적인 요인에 의해 로컬리티가 크게 희생되는 경우가 빈번하다. 논문은 이러한 한계를 극복하기 위해 두 가지 핵심 아이디어를 도입한다. 첫째, 각 작업(task)의 남은 실행 시간을 추정하고, 이를 해당 작업이 필요로 하는 데이터 블록을 현재 노드로 전송하는 데 소요되는 시간과 비교한다. 만약 전송 시간이 남은 실행 시간보다 짧다면, 해당 노드에 데이터를 미리 복제(prefetch)하여 로컬 실행이 가능하도록 한다. 둘째, “비지역(map) 작업”을 우선적으로 선정한다는 점이다. 즉, 아직 실행되지 않은 작업 큐에서 현재 노드에 데이터가 없는 map 작업을 찾아, 해당 작업에 필요한 블록을 가장 가까운 후보 노드(네트워크 토폴로지를 고려한)로 복사한다. 이렇게 하면 데이터가 실제로 사용되기 전까지 네트워크 대역폭을 효율적으로 활용하면서도, 작업이 시작될 때는 로컬 디스크에 데이터가 존재하게 된다.

알고리즘 흐름은 크게 네 단계로 나뉜다. 1) 클러스터 전체의 노드 상태와 현재 실행 중인 작업들의 진행 상황을 모니터링한다. 2) 각 작업에 대해 남은 시간(remaining time)을 추정하는데, 이는 과거 실행 기록과 현재 할당된 슬롯 수, CPU·메모리 사용량 등을 기반으로 한다. 3) 데이터 블록 전송 시간(transfer time)은 블록 크기와 현재 네트워크 대역폭, 그리고 후보 노드 간의 물리적 거리(스위치 홉 수) 등을 고려해 계산한다. 4) remaining time > transfer time 인 경우에만 프리패치를 수행한다. 프리패치 과정에서는 HDFS의 block replication 메커니즘을 활용해 기존 복제본 외에 추가 복제본을 생성한다. 이때 복제본 수는 클러스터의 여유 디스크 용량과 네트워크 부하를 실시간으로 감시하며 동적으로 조절한다.

실험 설계는 두 가지 워크로드(WordCount와 TeraSort)를 사용해 기존 FIFO, Capacity, Fair 스케줄러와 비교한다. 주요 평가지표는 평균 데이터 로컬리티 비율, 전체 작업 완료 시간(Job Completion Time, JCT), 그리고 네트워크 트래픽 증가량이다. 결과는 프리패치 기반 스케줄러가 로컬리티 비율을 평균 15%p 상승시키고, JCT를 10~18% 단축함을 보여준다. 특히 데이터 크기가 큰 TeraSort에서 네트워크 부하가 약간 증가했지만, 전체적인 성능 향상이 이를 상쇄한다는 점이 강조된다.

한계점으로는 남은 시간 추정 모델이 워크로드 특성에 크게 의존한다는 점과, 프리패치 과정에서 발생하는 추가 디스크 사용량·복제 관리 오버헤드가 장기 실행 작업에서는 누적될 가능성이 있다는 점을 들 수 있다. 또한, 클러스터가 매우 큰 규모(수천 노드)일 경우 후보 노드 선정 비용이 급증할 수 있어, 계층적 토폴로지 기반의 후보 선택 알고리즘이 필요하다.

전반적으로 논문은 “데이터 로컬리티를 사후가 아니라 사전에 확보한다”는 새로운 관점을 제시하며, Hadoop 환경에서 네트워크와 스토리지를 동시에 활용하는 균형 잡힌 스케줄링 전략을 제안한다. 향후 연구에서는 머신러닝 기반 남은 시간 예측, 다중 테넌시 환경에서의 프리패치 정책 조정, 그리고 Spark와 같은 메모리 중심 프레임워크에의 적용 가능성을 탐색할 여지가 있다.


댓글 및 학술 토론

Loading comments...

의견 남기기