我有一个Tensorflow程序,我想在一个仅具有很少的Spark依赖关系的AWS EMR集群的主节点上运行-我想执行一个spark提交命令,以使tensorflow尽可能多地使用资源。我在想如果我这样做
spark-submit --master local[4] myprogram.py
那种火花只能得到4个内核,而myprogram.py
将得到其余的内核-但是也许我将整个应用程序中的内核数量限制为只有4个? (假设主节点有32个核心)
tensorflow程序不是分布式的-整个流程是一个很大的spark应用程序,它使用任务节点执行大量ETL,然后训练仅发生在主节点上,但是训练仍然使用了spark-即尴尬-通常我会为tensorflow和pyspark创建自己的python环境,但是由于我使用的是EMR,所以我不想管理两个spark安装。
答案 0 :(得分:0)
使用display
,通过4个工作线程在本地运行Spark。
即使您的集群具有32个核心,spark应用程序也将仅使用4个核心。
部署将是非分布式单JVM部署模式,Spark在同一单个 JVM 中生成所有执行组件-B
。
要启动的display
由主URL 中指定的线程数控制。在您的情况下,任务数为4。