본문 바로가기

오픈소스/hadoop

Google이 1PB자료의 정렬을 MapReduce를 사용하여 성공했다고 합니다

Sorting 1PB with MapReduce

 몇 달 전이었던 것으로 기억하는데요, 1TB 자료의 정렬을 하는 문제에서 야후가 하둡의 맵리듀스를 통하여 209초에 성공했다는 기사(standard terabyte (TB) sort benchmark)를 본 적이 있습니다. 당시에 그 기사를 읽으면서 야~ 이거 구글에서 한다면 과연 얼마나 걸릴까 하는 생각을 잠시 해보았었는데요, 이번에 그 실험 결과를 내 놓았습니다. 과연 명불허전 구글의 경우 1TB의 자료를 무려 68초에 완료했다고 합니다. 물론 야후의 경우 장비를 910대 사용했고, 구글은 1,000대를 사용했다고 합니다. 장비대수의 문제는 아니라고 보여집니다.

 더욱 재미있는 것은 구글이 1PB도 시도를 했다는 것입니다. 1PB라고 하면, 1TB의 1,000배입니다. 과연 이러한 큰 데이터를 어디에 저장했는지 정렬과정에 발생하는 자료들은 어떻게 저장했는지 정말 상상이 안가는 수준의 작업을 해냈습니다.

 1PB의 정렬의 경우 6시간 2분 밖에 걸리지 않았다고 합니다. 단순히 linear하게 생각해 보아도 68초에 1TB이면 18시간은 걸려야 하는데 말이지요...

 이러한 작업에 소요된 컴퓨터는 총 4,000대, 하드디스크만 해도 48,000개가 사용되었으며 매번 정렬을 할 때마다 하드디스크가 하나씩 나간 꼴이라고 합니다. 하드디스크가 불량이라는 의미가 아니라 수명이 다 된 것이지요 (물론 Google File System에는  3개의 replica를 이용했습니다.)

 자세한 설명은 없으나 소위 말하는 "stragglers" (parts of computation that run slower than expected)를 해결하는 방법이 핵심 이라고 말하고 있습니다. 정확히 이해는 가지 않습니다만, CPU와 HDD를 꽉꽉 채워서 잘 사용하는 방법에 대한 know-how를 얘기하는 것 같습니다.

 관련 동영상(Technology RoundTable Series.)도 같이 공개되어 있으니 관심있으시면 보시는 것도 흥미를 돋우는 효과가 있을 것 같습니다.