繁体   English   中英

使用纱线上 spark-submit 的 --archives 选项上传 zip 文件

[英]Upload zip file using --archives option of spark-submit on yarn

我有一个包含一些模型文件的目录,由于某种原因,我的应用程序必须访问本地文件系统中的这些模型文件。

当然我知道spark-submit --files选项可以将文件上传到每个执行程序的工作目录并且它确实有效。

但是,我想保留我的文件的目录结构,所以我想出了--archives选项,据说

YARN-only:
......
--archives ARCHIVES         Comma separated list of archives to be extracted into the working directory of each executor.
......

但是当我实际使用它来上传models.zip ,我发现 yarn 只是将它放在那里而没有提取,就像它对--files所做的--files 我是否误解to be extracted或滥用此选项?

自己找到了答案。

YARN 确实提取了存档,但添加了一个与存档同名的额外文件夹。 明确地说,如果我将models/model1models/models2 models.zip放在models.zip ,那么我必须通过models.zip/models/model1models.zip/models/model2访问我的模型。

此外,我们可以使用 # 语法使其更美观。

--files 和 --archives 选项支持使用类似于 Hadoop 的 # 指定文件名。 例如,您可以指定:--files localtest.txt#appSees.txt,这会将您在本地命名为 localtest.txt 的文件上传到 HDFS,但这将通过名称 appSees.txt 链接到,并且您的应用程序应使用命名为 appSees.txt 以在 YARN 上运行时引用它。

编辑:

这个答案是在 spark 2.0.0 上测试过的,我不确定其他版本的行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM