为什么 "sc.addFile" 和 "spark-submit --files" 不向所有工作人员分发本地文件?
Why are "sc.addFile" and "spark-submit --files" not distributing a local file to all workers?
我有一个 CSV 文件 "test.csv",我正试图将其复制到集群上的所有节点。
我有一个 4 节点的 apache-spark 1.5.2 独立集群。有 4 个工人,其中一个节点也起作用 master/driver 以及工人。
如果我运行:
$SPARK_HOME/bin/pyspark --files=./test.csv
或者在 REPL 界面中执行 sc.addFile('file://' + '/local/path/to/test.csv')
我看到 spark 日志如下:
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
在 master/driver 节点上的单独 window 中,我可以使用 ls 轻松找到文件,即 (ls -al /tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b/userFiles-a4cb1723-e118-4f0b-9f26-04be39e5e28d/test.csv
).
但是,如果我登录 workers,/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 界面显示作业 运行ning 和在所有节点上分配的核心,控制台中也没有其他警告或错误出现。
正如丹尼尔所说,每个员工管理文件的方式不同。如果你想访问添加的文件,那么你可以使用SparkFiles.get(file)
。如果你想看看你的文件要去哪个目录,那么你可以打印 SparkFiles.getDirectory
(现在 SparkFiles.getRootDirectory
)
的输出
我有一个 CSV 文件 "test.csv",我正试图将其复制到集群上的所有节点。
我有一个 4 节点的 apache-spark 1.5.2 独立集群。有 4 个工人,其中一个节点也起作用 master/driver 以及工人。
如果我运行:
$SPARK_HOME/bin/pyspark --files=./test.csv
或者在 REPL 界面中执行 sc.addFile('file://' + '/local/path/to/test.csv')
我看到 spark 日志如下:
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
在 master/driver 节点上的单独 window 中,我可以使用 ls 轻松找到文件,即 (ls -al /tmp/spark-5dd7fc83-a3ef-4965-95ba-1b62955fb35b/userFiles-a4cb1723-e118-4f0b-9f26-04be39e5e28d/test.csv
).
但是,如果我登录 workers,/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 界面显示作业 运行ning 和在所有节点上分配的核心,控制台中也没有其他警告或错误出现。
正如丹尼尔所说,每个员工管理文件的方式不同。如果你想访问添加的文件,那么你可以使用SparkFiles.get(file)
。如果你想看看你的文件要去哪个目录,那么你可以打印 SparkFiles.getDirectory
(现在 SparkFiles.getRootDirectory
)