如何运行 spark 以集群模式分布,但在本地获取文件?

How to run spark distributed in cluster mode, but take file locally?

是否可以让 spark 将本地文件作为输入,然后对其进行分布式处理?

我的代码中有 sc.textFile(file:///path-to-file-locally),我知道文件的确切路径是正确的。然而,我仍然得到

Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 1.0 failed 4 times, most recent failure: Lost task 0.3 in stage 1.0 (TID 14, spark-slave11.ydcloud.net): java.io.FileNotFoundException: File file:/<path to file> does not exist

我是 运行 spark 分布式的,而不是本地的。为什么会出现错误?

这是可能的,但是当您将本地路径声明为输入时,它必须出现在每台工作机器和驱动程序上。因此,这意味着您必须首先手动或使用 SparkFiles.

等内置工具分发它

文件必须位于所有节点都可以访问的集中位置。这可以通过使用分布式文件系统来实现,dse 提供了 HDFS 的替代品,称为 CFS(Cassandra 文件系统)。当使用 -k 选项以分析模式启动 dse 时,cfs 可用。

有关设置和使用 cfs 的更多详细信息,您可以查看以下内容 link http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/ana/anaCFS.html