2017-02-02 9 views
1

Мы написали код для соединения и привязки наборов данных через GraphX, написанный на Scala, используя Spark 1.6.1 и Scala 2.10.Искра-оболочка Spark GraphX ​​против искр-представления производительности

Если мы запустим этот код в искровой оболочке, он будет завершен в 30 минут с 10 исполнителями, 10 г памяти & 5 штук за исполнителя.

Если мы запустим это в жирной банке с искрообразованием, тогда процесс выпадает из-за ошибок памяти и занимает полтора часа, чтобы добраться до этой точки.

Есть ли у кого-нибудь идеи, что может быть причиной этого?

Кто-нибудь знает, как настроены SparkContext и SQLContext в оболочке, и если мы упустили что-то в настройке собственных Контекстов, которые могут вызвать проблему с запуском spark-submit так плохо?

ответ

0

Я понял это некоторое время назад и просто снова наткнулся на мой вопрос. Поэтому мысль обновилась, как я ее исправил. Проблема заключалась не в разнице между искрообразованием и искровой оболочкой, а различием в структуре кода, которую мы выполняли.

В оболочке я разделил код и выполнил его по строкам, в результате получился быстрый и эффективный код, созданный Spark.

С помощью Spark Submit мы упаковали код и свернули его в классы с Inheritence, чтобы сделать код более простым для совместного использования и повторного использования, но это привело к тому, что код Spark был запутанным и неэффективным. Когда мы удалили большую часть Наследования и написали более простой, более функциональный код, базовая производительность вернулась к быстрому и эффективному.

Итак, урок заключается в том, чтобы убедиться, что вы не слишком сильно используете приложение, а небольшое наследование в порядке, но вы должны стараться, чтобы ваш код был простым и функциональным, чтобы облегчить для Spark быстрое создание эффективных код для выполнения в кластере.

0

Не должно быть разницы.

Проверьте настройки spark-submit - возможно, некоторые из них неверны, а spark-submit имеет меньшее количество исполнителей или памяти.

Открыть Спарк веб-интерфейс, проверьте, если данные не искажены, и если все настройки правильно

+0

Мы проверили параметры, которые они идентичны, и даже если мы предоставим искру, укажите больше ресурсов, чем оболочка, которая по-прежнему сталкивается с проблемами. Кроме того, если данные были искажены, они должны воздействовать на оболочку и отправлять таким же образом? –

+0

@AndyLong Не могли бы вы проверить значения параметров в Spark Web UI? –

+0

Возможно, некоторые настройки переопределены, поэтому я хочу проверить информацию из веб-интерфейса –