问题描述
面对与Spark submit failing in yarn cluster mode when specifying --files in an Azure HDIinsight cluster相同的问题
但是在上面的帖子中看不到任何答案。
问题:
在以下情况下,提交火花作业失败:--master yarn --deploy-mode cluster
并且在提供--py-files ZIPfile.zip
时
在--master yarn --deploy-mode client
模式下可以正常工作。
Azure HDInsight 4.0是否有问题?
解决方法
我提到了链接。这可能与无法创建目录的权限问题有关。引用为/mnt/resource/hadoop/yarn/local/usercache/<username>/appcache/<applicationID>
的目录用于存储中间结果,然后根据是否将其写入路径或分别存储在临时表中而转到HDFS /内存。用户可能没有权限。作业完成后,它将被清空。在特定工作节点中的路径/mnt/resource/hadoop/yarn/local/usercache
中为用户提供正确的权限应该可以解决此问题。
您提到它已作为客户端以spark-shell或部署模式成功执行。所以让我向您解释一下有什么区别
Spark Client
- spark作业的驱动程序组件基本上在提交作业的计算机中运行,并且该计算机中存在适当的jar /文件。这意味着它拥有所有可用资源来执行工作。
火花群集
- 驱动程序在群集的Worker节点之一上运行。工人是由船长选定的。
那么,谈到您的问题,文件/ jar是否分布在节点上?如果不是,请将文件放在所有工作程序节点的相同目录中(如头节点中),然后执行。您可以使用HDInsight群集的script action
将文件放置在节点中。如果仍然失败,请粘贴完整的错误跟踪。