Как распределить учебные задания равномерно между исполнителями? - PullRequest
0 голосов
/ 26 февраля 2019

Я установил автономный кластер с 4 рабочими (у каждого по 4 ядра) и 1 мастером.У каждого есть окно 10 операционной системы.я представил пример ML spark: multilayer_perceptron_classification.py в наш отдельный кластер spark.Но он выполняет все задачи одному исполнителю на одного работника. введите описание изображения здесь

multilayer_perceptron_classification.py код: (используйте код Spark MLlib):

spark = SparkSession\
    .builder.appName("multilayer_perceptron_classification_example").getOrCreate()

data = spark.read.format("libsvm")\
    .load("C:/spark/spark-2.3.2-bin-hadoop2.7/data/mllib/sample_multiclass_classification_data1.txt")

splits = data.randomSplit([0.6, 0.4], 1234)
train = splits[0]   
test = splits[1] 

layers = [4, 500, 500, 500, 3]

trainer = MultilayerPerceptronClassifier(maxIter=100, layers=layers, blockSize=128, seed=1234)

model = trainer.fit(train)

result = model.transform(test)
predictionAndLabels = result.select("prediction", "label")
evaluator = MulticlassClassificationEvaluator(metricName="accuracy")
print("Test set accuracy = " + str(evaluator.evaluate(predictionAndLabels)))

spark.stop()

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

1 Ответ

0 голосов
/ 26 февраля 2019

Проверьте количество разделов (data.rdd.partitions.size), скорее всего, это 1. Единица распараллеливания в Spark в разделе.Spark не будет использовать больше исполнителей, чем количество разделов данных.

Чтобы это исправить, либо разбейте ваши данные в sample_multiclass_classification_data1.txt на несколько файлов, либо заново разбейте их на части

num_partitions = 32
data = spark.read.format("libsvm")\
    .load("C:/spark/spark-2.3.2-bin-hadoop2.7/data/mllib/sample_multiclass_classification_data1.txt").repartition(num_partitions)

Связанный вопрос: Определение оптимального количества разделов Spark на основе рабочих данных, ядер и размера DataFrame

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...