python - Apache Spark 上未显示已完成或正在运行的应用程序
问题描述
当我启动我的 ANN 脚本时,在控制台级别一切正常,但 Spark Web 界面上没有任何变化:应用程序未显示在正在运行的应用程序或已完成的应用程序中。我创建了一个配置文件 spark-defaults.conf 我在其中放置:
spark.master spark://master:7077
spark.eventLog.enabled true
spark.eventLog.dir /opt/spark/eventLogging
我在 /tmp 中创建了一个 spark-event 文件夹,以便能够运行命令:
start-history-server.sh
可以正常工作。我在java 8下运行,我没有安装hadoop。我也试试这个命令:
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)
但是代码执行和网络界面没有变化。
解决方案
我找到了一个解决方案:实际上spark首先考虑了脚本配置,然后是命令配置,然后是一般配置。但是,在我的脚本中,我放了
.setMaster("local[4]")
,并且此表达式优先于命令。如果你放 local[],spark 将不会显示应用程序。所以我从我的脚本中删除了指令 .setMaster("local[4]") 并输入了这个命令:
spark-submit --master spark://MASTER_NODE:7077 ./MY_SCRIPT.py
请注意,我可以写
.setMaster("spark://MASTER_NODE:7077")
在我的脚本中,它也会起作用。
现在它起作用了。
推荐阅读
- swift - 了解如何在 Swift 中将类转换为协议
- r - 处理 R 重新编码中缺少的系统?
- php - 从 json 转换的 PHP 数组中获取值
- oracle - plsql sleep 不使用 dbms_lock.sleep/DBMS_SESSION.sleep
- node.js - 更改 --unsafe-perm 被忽略
- javascript - 如何在 Next.js 中保护 API 路由
- c# - 我可以用不同的名称保存查询字符串的下载链接吗?
- google-chrome - Google Chrome 能否在不更改媒体类型或编码的情况下为 Google Cloud Speech-to-Text 录制音频文件?
- jestjs - 开玩笑 - 如何模拟模块使用的类?
- java - 有没有办法隐藏或禁用安卓蓝牙配对请求提示?