Искровой исполнитель потерял неудачу
Я использую искровой кластер databricks (AWS) и тестирование в моем эксперименте scala.
У меня есть проблема при обучении 10 ГБ данных с алгоритмом LogisticRegressionWithLBFGS.
Блок кода, в котором я встретил проблему, выглядит следующим образом:
import org.apache.spark.mllib.classification.LogisticRegressionWithLBFGS
val algorithm = new LogisticRegressionWithLBFGS()
algorithm.run(training_set)
Во-первых, у меня получилось много неудачных попыток исполнителя и проблемы с памятью из Java, после чего я перераспределил свой тренировочный_файл с большим количеством разделов, а проблемы с памятью исчезли, но все равно получить потерянный проигрыватель.
В моем кластере имеется 72 ядра и 500 ГБ.
Может ли кто-нибудь дать представление об этом?
Ответы
Ответ 1
LBFGS использует плотный вектор для хранения бета (весов) внутри, и все в памяти. Поэтому, независимо от разреженности функций в наборе тренировок, общее количество функций - это то, о чем нужно помнить.
Таким образом, для решения этого пользователя необходимо либо увеличить память исполнителей, либо ограничить общее количество функций в обучающем наборе.