2013-09-02 2 views
0

Java 기반 애플리케이션을 개발 중이며 Mahout 라이브러리에 구현 된 기계 학습 알고리즘을 사용하기로 결정했습니다. 내 애플리케이션은 Hadoop없이 단일 시스템에서 실행됩니다.Mahout 단일 시스템 성능

단일 노드 Mahout에 오버 헤드가있는 경우 분산 노드와 같은 질문을하고 싶습니다. Mahout이 여러 장의 클러스터 Mahout이 오버 헤드 (초기화, 데이터 전송 등)보다 많은 책을 읽었습니다. 그러나 MapReduce 패러다임없이 Mahout 알고리즘을 사용한다면 오버 헤드가 없어야합니다. 맞습니까?

+0

일부 알고리즘은 비 분산 버전 (비어 있지 않음을 의미)을 가지고 있습니다. 필요에 따라 사용할 수있는 경우 사용하십시오. –

답변

0

단일 시스템에서 실행하든 1000 노드 클러스터에서 실행하든 상관 없습니다. Hadoop은 모든 중간 데이터 (MAP의 키 - 값 출력)를 직렬화하고 디스크에 유지합니다. 축소 단계에서 키 - 값 쌍을 다시 메모리로로드합니다. 따라서 막대한 처리 및 디스크 액세스 오버 헤드가 발생합니다.

기본적으로 머신 수가 적 으면 (예 : < 머신 7 개), hadoop은 속도 향상 분석에 적합하지 않을 수 있습니다. 이 경우 큰 클러스터에 배포하기 전에 작은 클러스터를 사용하여 코드 논리를 확인할 수 있습니다.

+0

정말이에요? 왜냐하면 Im은 hadoop을 사용하지 않는 알고리즘에 대해 묻기 때문입니다. 알고리즘의 이러한 그룹은 중간 크기의 데이터에 적합합니다. MapReduce는 사용되지 않지만 확실하지는 않습니다. 그들은 또한 직렬화를 사용합니까? –

+0

@HIP_HOP Mahout은 map-reduce 패러다임을 사용하여 Hadoop 위에 실행되도록 만들어졌습니다. 필자는 map-reduce없이 직렬 버전을 구현했다고 생각하지 않습니다. – Ali

+0

그러나 단일 컴퓨터 또는 제한된 수의 컴퓨터 (확장 가능 버전이 아닌)에 확장 가능한 컴퓨터 학습 도구를 사용하려면 graphlab 또는 [spark] (http://spark.incubator.apache.org/) – Ali

관련 문제