2013-04-10 3 views
0

Apache Hadoop은 Google MapReduce에서 영감을 얻었습니다. MapReduce의 흐름은 두 세트의 SIMD (단일 명령 다중 데이터)로 간주 될 수 있습니다. 하나는 Mappers 용이고 다른 하나는 Reducers 용입니다. Reducers는 미리 정의 된 "키"를 통해 Mappers의 출력을 소비합니다. MapReduce 프레임 워크 (및 Hadoop)의 본질은 데이터를 자동으로 분할하고 파티션 및 병렬 작업 수를 결정하며 분산 된 자원을 관리하는 것입니다.비 MapReduce 알고리즘에 대한 Hadoop 클러스터

필자에게는 병렬로 실행되는 일반 알고리즘 (반드시 MapReducable 일 필요는 없음)이 있습니다. 나는 알고리즘 자체를 MapReduce 방식으로 구현하지 않는다. 대신 알고리즘은 단지 하나의 기계로 된 python/java 프로그램입니다. 이 프로그램의 64 개 복사본을 병렬로 실행하고 싶습니다 (프로그램에 동시성 문제가 없다고 가정). 즉, MapReduce 프레임 워크보다 Hadoop 클러스터의 컴퓨팅 리소스에 더 많은 관심이 있습니다. 어쨌든이 오래된 방식으로 Hadoop 클러스터를 사용할 수 있습니까?

답변

0

MapReduce에 대한 다른 생각은 MR이 변환을 수행하고 Reduce가 일종의 집계를 수행한다는 것입니다.

하둡은 또한지도 전용 작업을 허용합니다. 이 방법으로 Map 프로그램의 64 개 복사본을 병렬로 실행할 수 있어야합니다.

하둡에는 슬롯이라는 개념이 있습니다. 기본적으로 노드/시스템 당 2 개의 맵과 2 개의 축소 슬롯이 있습니다. 따라서 64 개의 프로세스를 병렬로 실행하려면 32 개의 노드가 필요합니다. 노드가 고급 구성 인 경우 노드 당 M/R 슬롯 수를 늘릴 수도 있습니다.