为什么spark驱动程序在应用程序运行时不运行?

k75qkfdt  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(604)

我是一个初学者,尝试通过一些例子来了解应用程序和驱动程序的行为。我从以下几点开始:
运行独立群集管理器
运行单个主控呼叫 ./sbin/start-master.sh 运行单个辅助进程调用 ./sbin/start-slave.sh spark://localhost:7077 通过调用以下命令以客户端模式启动测试应用程序:

  1. ./bin/spark-submit \
  2. --master spark://localhost:7077 \
  3. ./examples/src/main/python/pi.py

根据文件:
运行应用程序的main()函数并创建sparkcontext的进程
我的收获是,当应用程序运行时,应该至少有一个驱动程序运行。但是,我在master的web ui中没有看到这一点:
活着的工人:1
正在使用的核心:共4个,已使用0个
使用内存:总共15.0 gb,使用0.0 b
应用程序:0正在运行,1已完成
驱动程序:0正在运行,0已完成
状态:活动
我不应该期望看到1个驱动程序运行或完成吗?我在下面提供了一些配置细节。
./conf/spark-defaults.conf:

  1. spark.master=spark://localhost:7077
  2. spark.eventLog.enabled=true
  3. spark.eventLog.dir=./tmp/spark-events/
  4. spark.history.fs.logDirectory=.tmp/spark-events/
  5. spark.driver.memory=5g
laawzig2

laawzig21#

如果您运行的是交互式shell,例如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

相关问题