如何在客户端模式下正确使用Spark ML持久性/数据帧写入?

时间:2017-11-21 08:00:21

标签: apache-spark

(Spark版本:2.x)

当Spark在客户端模式下运行时,驱动程序在Integer.MAX_VALUE命令启动的同一JVM上执行:因此,当在远程集群上连接时(例如在云中),驱动程序可能共享一个来自工作者的不同submit(驱动程序甚至可能在Windows中,而工作者可以在Linux中运行)。

话虽如此,在序列化FileSystem实例时,或者甚至只编写一个带有镶木地板的MLWritable时,驱动程序必须与工作者共享相同的路径它会写入DataFrame_SUCCESS个文件。我是否应该理解Spark始终意味着驱动程序和工作人员之间的一致性(这很可惜:在客户端模式下进行调试代码要容易得多,即使它在云中的集群中运行也是如此......)。

1 个答案:

答案 0 :(得分:0)

不幸的是,是的。 Spark使用Hadoop路径,并且由于充足的原因,它们在驱动程序和执行程序上都需要相同。好处是,实现自己的FileSystem(根据Hadoop)mais非常容易使其正常工作。