베이지안 기반 하둡 작업 스케줄링 최적화

베이지안 기반 하둡 작업 스케줄링 최적화

초록

본 논문은 하둡 클러스터에서 작업을 “좋은 작업”과 “나쁜 작업”으로 구분하기 위해 베이즈 분류기를 도입한다. JobTracker는 TaskTracker의 자원 상태와 작업의 평균 CPU·메모리 사용률 등 특징 변수를 활용해 실시간으로 작업을 분류하고, 좋은 작업의 태스크를 우선 할당한다. 실험 결과, 기존 스케줄러 대비 실행 효율과 안정성이 크게 향상되었다는 점을 보고한다.

상세 분석

이 논문은 기존 하둡 스케줄링 알고리즘이 자원 사용량을 정적 혹은 단순히 우선순위 기반으로만 고려한다는 한계를 지적하고, 베이즈 분류를 통해 동적인 작업‑노드 매칭을 시도한다는 점에서 신선하다. 저자는 작업 특성(feature)으로 평균 CPU 사용률, 평균 메모리 사용률 등을, 노드 특성(node feature)으로 현재 CPU 사용률과 유휴 물리 메모리 크기를 정의하고, 이들을 베이즈 모델의 입력 변수로 활용한다. 베이즈 분류는 사전 확률과 조건부 확률을 곱해 사후 확률을 계산함으로써, 새로운 작업이 “good” 혹은 “bad”에 속할 확률을 추정한다. 이 확률이 일정 임계값을 초과하면 good job으로 간주하고, TaskTracker가 작업을 요청할 때 우선 선택한다.

핵심적인 강점은 피드백 루프이다. 작업 실행 결과(성공/실패, 자원 초과 여부 등)를 JobTracker가 수집하고, 이를 기반으로 베이즈 모델의 조건부 확률을 업데이트한다. 따라서 시스템은 시간이 지남에 따라 환경 변화(예: 노드 고장, 워크로드 변동)에 적응한다. 또한, 작업‑노드 매칭을 확률적으로 수행함으로써, 동일한 작업이 여러 노드에 고르게 분산될 가능성을 높여 “스키드” 현상을 완화한다.

하지만 몇 가지 한계도 존재한다. 첫째, 베이즈 분류기의 학습에 필요한 사전 확률과 조건부 확률을 어떻게 초기화했는지, 그리고 초기 데이터가 부족할 경우 모델이 과도하게 편향될 위험이 있다. 논문에서는 초기 학습 데이터를 명시하지 않아 재현성이 떨어진다. 둘째, 특징 변수는 평균값에 기반하고 있어 순간적인 피크 부하를 반영하지 못한다. 하둡 작업은 종종 짧은 시간에 급격히 자원을 소모하므로, 평균값만으로는 충분히 표현되지 않을 수 있다. 셋째, 베이즈 연산 자체는 계산량이 적지만, 모든 작업과 모든 노드에 대해 실시간 확률을 계산하고 업데이트하는 오버헤드가 클 수 있다. 특히 대규모 클러스터(수천 노드)에서는 중앙 집중식 JobTracker가 병목이 될 가능성이 있다.

실험 부분에서도 비교 대상이 모호하다. 논문은 “기존 알고리즘”이라고만 언급하고, 실제로는 FIFO, Capacity Scheduler, Fair Scheduler 중 어느 것을 사용했는지, 그리고 동일한 워크로드와 클러스터 환경에서 비교했는지 상세히 기술되지 않았다. 또한, 성능 향상을 “실행 효율과 안정성”이라는 정성적 지표로만 제시하고, 평균 작업 완료 시간, 스루풋, 자원 이용률 등의 정량적 메트릭을 표나 그래프로 제공하지 않아 주장의 신뢰성이 떨어진다.

마지막으로, 베이즈 모델이 다중 클래스(예: “good”, “moderate”, “bad”)를 지원하지 않고 이진 분류에 머무르는 점도 제한적이다. 실제 환경에서는 작업을 단순히 두 그룹으로 나누기보다, 우선순위와 SLA 요구사항을 고려한 다중 레벨 스케줄링이 필요하다. 이러한 점들을 보완한다면, 제안된 접근법은 하둡뿐 아니라 Spark, Flink 등 다른 분산 처리 프레임워크에도 확장 가능할 것으로 보인다.