【发布时间】:2016-08-31 12:05:02
【问题描述】:
我有一个 CSV 文件“test.csv”,我正在尝试将其复制到集群上的所有节点。
我有一个 4 节点 apache-spark 1.5.2 独立集群。有 4 个工作人员,其中一个节点也有主/驱动程序以及工作人员。
如果我跑:
$SPARK_HOME/bin/pyspark --files=./test.csv OR 在 REPL 接口中执行 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)。
但是,如果我登录工作人员,/tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b/userFiles-a4cb1723-e118-4f0b-9f26-04be39e5e28d/test.csv 没有文件,/tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b 甚至没有文件夹
但是 apache spark web 界面显示作业正在运行,并且在所有节点上分配了内核,控制台中也没有出现其他警告或错误。
【问题讨论】:
-
我相信每个worker独立管理用户文件。日志行
Copying /local/path/to/test.csv (...)仅发生在驱动程序中。然后,每个工作人员将根据其配置将文件存储在不同的位置,并将其名称指向正确的位置。 -
啊,我以为它到处都使用了确定性的文件夹结构,谢谢
标签: file apache-spark cluster-computing distribute