为什么我需要在客户端设置yarn.application.classpath,当已在集群上设置classpath时?

时间:2017-07-23 02:42:48

标签: amazon-web-services hadoop apache-spark yarn amazon-emr

我正在使用spark-submit --master yarn --deploy-mode cluster向来自群集外部节点的AWS上的EMR群集提交带有ClassNotFoundException的Spark作业。

该作业依赖于AWS​​ SDK for S3。

我在org.apache.hadoop.fs.s3a.S3AFileSystem上获得了yarn.application.classpath,除非我还在客户端一侧yarn-site.xml设置了yarn-site.xml(我在其中'} m叫spark-submit)。如果我从EMR集群主节点上的Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the LoginForm component.复制粘贴此设置,则可以正常工作。

我不明白为什么我需要这样做:如果群集已经配置了这个类路径,为什么我还需要从客户端配置这个属性?特别是因为所有路径都指的是EMR集群上的文件夹,而不是客户端。

0 个答案:

没有答案