Amazon web services 当集群上已经设置了类路径时,为什么需要在客户端设置warn.application.classpath?

Amazon web services 当集群上已经设置了类路径时,为什么需要在客户端设置warn.application.classpath?,amazon-web-services,hadoop,apache-spark,yarn,amazon-emr,Amazon Web Services,Hadoop,Apache Spark,Yarn,Amazon Emr,我正在使用Spark submit--master warn--deploy mode cluster从集群外的节点向AWS上的EMR集群提交Spark作业 该作业依赖于AWS SDK for S3 我在org.apache.hadoop.fs.s3a.S3AFileSystem上获得ClassNotFoundException,除非我也在客户端的warn site.xml中设置warn.application.classpath。如果我从EMR集群主节点上的warn site.xml复制粘贴此

我正在使用
Spark submit--master warn--deploy mode cluster
从集群外的节点向AWS上的EMR集群提交Spark作业

该作业依赖于AWS SDK for S3

我在
org.apache.hadoop.fs.s3a.S3AFileSystem
上获得
ClassNotFoundException
,除非我也在客户端的
warn site.xml
中设置
warn.application.classpath
。如果我从EMR集群主节点上的
warn site.xml
复制粘贴此设置,它会工作

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