我是一个初学者,尝试通过一些示例来了解应用程序和驱动程序的行为。我从以下开始:
./sbin/start-master.sh
./sbin/start-slave.sh spark://localhost:7077
的工人./bin/spark-submit \
--master spark://localhost:7077 \
./examples/src/main/python/pi.py
根据Docs:
运行应用程序的main()函数并创建SparkContext的过程
我的总结是,当应用程序运行时,应该至少运行一个驱动程序。但是,我没有在主用户的Web UI中看到此信息:
我不应该看到1个驱动程序正在运行或完成吗?我在下面提供了一些配置详细信息。
./ conf / spark-defaults.conf:
spark.master=spark://localhost:7077
spark.eventLog.enabled=true
spark.eventLog.dir=./tmp/spark-events/
spark.history.fs.logDirectory=.tmp/spark-events/
spark.driver.memory=5g
答案 0 :(得分:2)
如果您正在运行交互式外壳程序,例如pyspark(CLI或通过IPython笔记本),默认情况下,您以client
模式运行。
客户端模式不会触发驱动程序,但是cluster
模式会触发。
注意:抱歉,您无法在集群模式下运行pyspark
或任何其他交互式Shell。
因此,请尝试使用--deploy-mode cluster
在集群模式下运行应用程序
./bin/spark-submit \
--master spark://localhost:7077 \
--deploy-mode cluster
./examples/src/main/python/pi.py