Spark应用中非Spark Context代码restController.sendFile()是否运行在Driver?
回答
你的理解完全正确,restController.sendFile()确实是在Driver节点上执行的,原因如下:
- Spark应用的
main方法代码默认都运行在Driver进程中,只有被包裹在RDD/DataFrame的分布式算子(如map、foreach)内部的代码,才会被分发到Executor节点执行。 - 你代码中的
restController.sendFile()直接写在main方法的主逻辑里,既没有嵌入任何分布式算子,也不属于Spark的分布式数据处理流程——读写CSV/Parquet的操作是由Driver协调,但实际数据处理在Executor执行,而sendFile()是Driver进程自身的同步调用,和Spark Context的分布式执行无关。 - 通过
spark-submit提交应用时,main方法的入口就是Driver进程的启动点,这段代码自然在Driver上运行。
内容的提问来源于stack exchange,提问作者Jelly
相关产品推荐
相关产品推荐

