2016-06-28 4 views
-1

최근에 Apache Spark을 배우고 있습니다. i7-4790S CPU와 16GB RAM이 장착 된 Hackintosh (El Capitan)에 Brew를 통해 Hadoop과 Apache Spark를 설치했습니다. 다음과 같이 SparkPi 예제를 실행했습니다.OS X과 Ubuntu의 Apache Spark 성능

/usr/local/Cellar/apache-spark/1.6.1/bin/run-example SparkPi 1000 

완료하기까지 43 초가 걸렸습니다.

16/06/27 00:54:05 INFO DAGScheduler: Job 0 finished: reduce at SparkPi.scala:36, took 43.165503 s 

저는 다른 PC에 i3 - 4170T CPU와 16GB RAM이있는 우분투 16.04를 사용하고 있습니다. Hadoop과 Spark (OS X에서와 같은 버전)를 실행하기위한 Docker 컨테이너를 설정했습니다. 흥미롭게도 동일한 요청을 완료하는 데 단지 18 초 밖에 걸리지 않았습니다.

16/06/28 16:22:49 INFO scheduler.DAGScheduler: Job 0 finished: reduce at SparkPi.scala:36, took 18.264482 s 

Spark보다 빠른 CPU를 실행하는 OS X에서 스파크가 우분투의 Spark보다 훨씬 느립니다.

+2

"두 가지 완전히 다른 환경에서 동일한 작업을 수행했으며 다르게 수행했습니다." 음, 그래 ... –

+2

"그리고 어느 환경도 분산 컴퓨팅 도구 인 Spark이 실제로 실행되도록 설계되지 않았습니다." – Jeff

+0

이 테스트를 실행하기 위해 설정 한 코어 및 메모리 측면에서 어떤 구성의 리소스를 공유해야한다고 생각합니다. –

답변

1

실제 스파크 작업의 경우 사용자가 사용하는 빌드에 관계없이 native library availability의 차이로 인해 플랫폼에 따라 성능 차이가있을 수 있습니다.

특별한 경우 SparkPi 예제가 실제로 의미있는 방식으로 네이티브 라이브러리에 실제로 종속되는지 여부에 더 회의적입니다. 많은 작업을 실행하지 않으면 차이가 너무 커질 수 있습니다. 시간이 많이 소요되지만, SparkPi 예제 에서조차 나타날 수있는 방식으로 네이티브 라이브러리가 값 비싼 스케줄링이나 파일 시스템 액세스 작업에 영향을 미칠 수 있다는 것은 여전히 ​​상상할 수 있습니다.