为什么"sc.addFile"和"spark-submit --files"不向所有工作人员分发本地文件?



我有一个CSV文件"test.CSV",我正试图将其复制到集群上的所有节点。

我有一个4节点的apachespark 1.5.2独立集群。有4个工人,其中一个节点也有主/驱动程序和工人。

如果我运行:

REPL接口内的$SPARK_HOME/bin/pyspark --files=./test.csv OR执行sc.addFile('file://' + '/local/path/to/test.csv')

我看到火花日志如下:

16/05/05 15:26:08 INFO Utils: Copying /local/path/to/test.csv to /tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b/userFiles-a4cb1723-e118-4f0b-9f26-04be39e5e28d/test.csv
16/05/05 15:26:08 INFO SparkContext: Added file file:/local/path/to/test.csv at http://192.168.1.4:39578/files/test.csv with timestamp 1462461968158

在主/驱动程序节点上的一个单独窗口中,我可以使用ls(即(ls -al /tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b/userFiles-a4cb1723-e118-4f0b-9f26-04be39e5e28d/test.csv))轻松定位文件。

然而,如果我登录到worker,/tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b/userFiles-a4cb1723-e118-4f0b-9f26-04be39e5e28d/test.csv上没有文件,/tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b 上甚至没有文件夹

但apachespark web界面显示了一个正在运行的作业和在所有节点上分配的内核,控制台中也没有出现其他警告或错误。

正如Daniel所评论的,每个工作人员对文件的管理方式不同。如果要访问添加的文件,则可以使用SparkFiles.get(file)。如果您想查看文件要转到哪个目录,那么您可以打印SparkFiles.getDirectory(现在是SparkFiles.getRootDirectory)的输出

相关内容

  • 没有找到相关文章

最新更新