Заполненное или запущенное приложение не отображается на Apache Spark - PullRequest
0 голосов
/ 30 апреля 2020

Когда я запускаю свой сценарий ANN, все работает нормально на уровне консоли, но ничего не меняется в веб-интерфейсе Spark: приложение не отображается в запущенных приложениях или завершенных приложениях. Я создал конфигурационный файл spark-defaults.conf, в который я положил:

spark.master                     spark://master:7077
spark.eventLog.enabled           true
spark.eventLog.dir               /opt/spark/eventLogging

Я создал папку спарк-событий в / tmp, чтобы можно было запустить команду:

start-history-server.sh

который работает без ошибок. Я работаю под java 8, и я не установил имел oop. Я также пробую эту команду:

spark-submit --driver-memory 2G --conf spark.eventLog.enabled=true --conf spark.eventLog.dir=/opt/spark/eventLogging ./<my_script.py>

Сценарий:

#make the ANN

from pyspark import SparkContext, SparkConf
conf = SparkConf().setAppName('Elephas_App').setMaster('local[4]')
sc = SparkContext(conf=conf)


# Initialising the ANN
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.optimizers import SGD
model = Sequential()
model.add(Dense(6, input_dim=11))
model.add(Activation('relu'))
model.add(Dense(6))
model.add(Activation('relu'))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam')

# Fitting the ANN to the Training set
from elephas.utils.rdd_utils import to_simple_rdd
rdd = to_simple_rdd(sc, x_train, y_train)

from elephas.spark_model import SparkModel

spark_model = SparkModel(model, frequency='epoch', mode='asynchronous')
spark_model.fit(rdd, epochs=100, batch_size=10, verbose=1, validation_split=0.1)

Но нет изменений в выполнении кода и в веб-интерфейсе.

1 Ответ

1 голос
/ 02 мая 2020

Я нашел решение: на самом деле spark учитывает сначала конфигурацию скрипта, затем команду config, а затем общую конфигурацию. Однако в моем сценарии я поставил

.setMaster("local[4]")

, и это выражение имеет приоритет над командой. И если вы поставите local [], spark не будет отображать приложение. Поэтому я удалил инструкцию .setMaster ("local [4]") из моего скрипта и набрал эту команду:

spark-submit --master spark://MASTER_NODE:7077 ./MY_SCRIPT.py

Обратите внимание, что я мог написать

.setMaster("spark://MASTER_NODE:7077")

в моем скрипте и это тоже сработало бы.

Теперь работает.

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