首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS EMR Spark --属性-未找到文件类com.amazon.ws.emr.hadoop.fs.EmrFileSystem

AWS EMR Spark --属性-未找到文件类com.amazon.ws.emr.hadoop.fs.EmrFileSystem
EN

Stack Overflow用户
提问于 2019-02-28 20:16:42
回答 1查看 4.2K关注 0票数 0

我正在尝试使用以下命令从AWS EMR emr-5.20.0主节点提交Spark申请:

代码语言:javascript
复制
spark-submit --executor-memory 4g --deploy-mode cluster --master yarn --class com.example.Application --properties-file config.conf s3://example-jobs/application.jar

但它失败了,并显示以下错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.amazon.ws.emr.hadoop.fs.EmrFileSystem not found

原因如下:

代码语言:javascript
复制
--properties-file config.conf

我做错了什么?如何正确地将属性文件传递到AWS EMR Apache Spark?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-02 07:30:17

通过传递--properties-file,您完全覆盖了EMR在/etc/spark/conf/spark-defaults.conf中提供的许多缺省值,特别是错过了设置类路径以包含EMRFS jar的属性,而这正是导致您遇到的特定错误的原因。

您可以在集群创建时通过以下https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-configure.html配置Spark,而不是指定自己的完整属性文件。使用此方法配置Spark将导致您自己提供的值以及EMR默认提供的值出现在/etc/spark/conf/spark-defaults.conf中。您提供的值将覆盖EMR在此处提供的任何默认值。

对于任何不适合集群级别而是单个应用程序级别的配置,您可以使用以下内容将额外的配置传递给spark-submit:

spark-submit --conf KEY1=VALUE1 --conf KEY2=VALUE2 --executor-memory 4g --deploy-mode cluster --class ... --jar ... [args]

顺便说一句,您不需要指定--master yarn,因为这已经在/etc/spark/conf/spark-defaults.conf中指定了。此外,/etc/spark/conf/spark-defaults.conf中的默认执行器内存通常已经在4-5g左右,这取决于集群中的实例类型。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54925550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档