如何在集群模式下运行spark,但是在本地获取文件?

时间:2016-07-05 18:57:28

标签: apache-spark cluster-computing pyspark apache-spark-standalone

是否可以让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分布式,而不是本地运行。为什么存在错误?

2 个答案:

答案 0 :(得分:3)

有可能但是当您将本地路径声明为输入时,它必须存在于每个工作机器和驱动程序上。因此,这意味着您必须先手动或使用SparkFiles等内置工具进行分发。

答案 1 :(得分:3)

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

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