我正在使用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集群上的文件夹,而不是客户端。