2013-10-26 2 views
1

클라우드 스토리지 폴더에 데이터가 1PB라고 말하면 모든 데이터를 가장 빨리 정렬 할 수있는 방법은 무엇입니까? 작은 덩어리를 쉽게 분류 할 수 있지만 더 큰 정렬 된 출력으로 병합하는 것은 어느 시점에서 전체 프로세스를 병합해야하기 때문에 더 오래 걸릴 것입니다. 나는 이것을 피하고 완전히 분산 된 솔루션을 원한다. 방법이 있을까? 그렇다면 S3에서 데이터를 정렬하는 데 사용하기에 적합한 구현이 있습니까?클라우드에서 많은 양의 데이터 정렬?

답변

2

정렬해야하는 데이터의 양이 RAM을 초과하므로 많은 지식을 가진 유일한 합리적인 방법은 청크를 먼저 정렬 한 다음 병합하는 것입니다.

Merge Sort이 작업을 수행하는 가장 좋은 방법입니다. 병렬 처리로 동시에 여러 데이터 덩어리를 정렬 할 수 있으므로 정렬 속도가 빨라집니다.

: 당신이 덩어리를 정렬 완료 후

건은, 당신이 병합의 모든 일을 단일 프로세스를 필요가 없습니다, 당신은 여러 프로세스가 동시에 서로 다른 청크를 병합을 가질 수 있습니다 이 알고리즘은 병렬 병합 알고리즘을 사용하여 배열의 재귀 적 분할뿐만 아니라 병합 작업을 병렬화합니다. 삽입 정렬과 같은 빠르고 안정적인 순차 정렬 및 작은 배열 병합을위한 기본 케이스로서의 빠른 순차 병합과 결합하면 실제로 잘 수행됩니다.

link은 병합 알고리즘에 대한 자세한 정보를 제공합니다.

0

나쁜 소식 - 여러 정렬 된 파일의 k-merge를 피할 수는 없습니다. 좋은 점은 일부 작업을 병렬로 수행 할 수 있다는 것입니다.

관련 문제