IT이야기

Apache Mahout과 Apache Spark의 MLlib의 차이점

cyworld 2021. 9. 22. 17:37
반응형

Apache Mahout과 Apache Spark의 MLlib의 차이점은 무엇입니까?


products전자 상거래 웹 사이트를 위한 천만 개의 제품이 있는 MySQL 데이터베이스를 고려합니다 .

제품을 분류하는 분류 모듈을 설정하려고 합니다. Apache Sqoop을 사용하여 MySQL에서 Hadoop으로 데이터를 가져오고 있습니다.

나는 그것의 분류 알고리즘 중 하나를 사용하기 위해 기계 학습 프레임워크로 Mahout을 사용 하고 싶었고 MLlib 와 함께 제공되는 Spark를 만났습니다.

  • 그렇다면 두 프레임워크의 차이점은 무엇입니까?
  • 주로 각각의 장점, 단점 및 한계는 무엇입니까?

주요 차이점은 기본 프레임워크에서 비롯됩니다. Mahout의 경우 Hadoop MapReduce, MLib의 경우 Spark입니다. 더 구체적으로 말하자면 - 작업당 오버헤드의 차이에서
ML 알고리즘이 단일 MR 작업에 매핑된 경우 - 주요 차이점은 시작 오버헤드뿐이며, 이는 Hadoop MR의 경우 수십 초이고 Spark의 경우 1초입니다. 따라서 모델 훈련의 경우에는 그렇게 중요하지 않습니다.
알고리즘이 많은 작업에 매핑되면 상황이 달라집니다. 이 경우 반복당 오버헤드에 대해 동일한 차이가 발생하며 게임 체인저가 될 수 있습니다.
100번의 반복이 필요하고 각각 5초의 클러스터 CPU가 필요하다고 가정해 보겠습니다.

  • 스파크에서: 100*5 + 100*1초 = 600초가 걸립니다.
  • Hadoop: MR(Mahout)에서 100*5+100*30 = 3500초가 걸립니다.

동시에 Hadoop MR은 Spark보다 훨씬 더 성숙한 프레임워크이며 데이터가 많고 안정성이 가장 중요하다면 Mahout을 진지한 대안으로 고려할 것입니다.


경고--주요 수정 사항:

MLlib는 Spark에서 실행되는 고급 알고리즘의 느슨한 모음입니다. 이것은 Mahout이 Hadoop Mapreduce에 있는 유일한 Mahout이었던 것입니다. 2014년 Mahout은 더 이상 Hadoop Mapreduce 코드를 허용하지 않고 새로운 개발을 Spark로 완전히 전환했다고 발표했습니다(H2O와 같은 다른 엔진이 개발 중일 수 있음).

여기서 나온 가장 중요한 것은 스칼라 기반의 일반화된 분산 최적화 선형 대수 엔진과 대화형 스칼라 셸을 포함한 환경입니다. 아마도 가장 중요한 단어는 "일반화"일 것입니다. Spark에서 실행되기 때문에 MLlib에서 사용 가능한 모든 것을 Mahout-Spark의 선형 대수 엔진과 함께 사용할 수 있습니다.

R과 같은 도구가 수행하는 많은 작업을 수행하지만 실제로 큰 데이터에 대해 수행하는 일반 엔진이 필요한 경우 Mahout을 살펴보십시오. 특정 알고리즘이 필요한 경우 각 알고리즘에 무엇이 있는지 살펴보십시오. 예를 들어 Kmeans는 MLlib에서 실행되지만 A'A(추천자에서 사용되는 동시 발생 행렬)를 클러스터링해야 하는 경우 MLlib에 행렬 전치 또는 A'A가 없기 때문에 둘 다 필요합니다(실제로 Mahout은 Thin-Optimized A'A이므로 전치가 최적화됩니다).

또한 Mahout 에는 다른 OSS에서는 볼 수 없는 기능을 제공 하는 몇 가지 혁신적인 추천 구성 요소포함되어 있습니다 .

Mahout에는 여전히 이전 Hadoop 알고리즘이 있지만 Spark와 같은 빠른 컴퓨팅 엔진이 표준이 되면서 대부분의 사람들이 여기에 투자할 것입니다.

ReferenceURL : https://stackoverflow.com/questions/23511459/what-is-the-difference-between-apache-mahout-and-apache-sparks-mllib

반응형