我是一个初学者,尝试通过一些例子来了解应用程序和驱动程序的行为。我从以下几点开始:
运行独立群集管理器
运行单个主控呼叫 ./sbin/start-master.sh
运行单个辅助进程调用 ./sbin/start-slave.sh spark://localhost:7077
通过调用以下命令以客户端模式启动测试应用程序:
./bin/spark-submit \
--master spark://localhost:7077 \
./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:
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
1条答案
按热度按时间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