Azure上的Spark堆空间和简单电子邮件



我正在使用IntelliJ和Scala来编程Spark作业。

我有一个对象。当我在本地机器上运行它时,我会得到一个关于Java堆大小的错误。我进入IntelliJ设置,可以添加更多空间。

从那以后,我在Azure上构建了一个Spark 2.2集群。

当我通过IntelliJ将作业提交给Azure时,我会收到两个在本地运行时不存在的错误

1

YARN Diagnostics: User class threw exception: java.lang.OutOfMemoryError: Java heap space

如何在Azure上的Spark上设置Java堆空间?

2

YARN Diagnostics: User class threw exception: java.lang.NoClassDefFoundError: 
org/apache/commons/mail/DefaultAuthenticator

我相信问题出在这一行代码上:

val email = new SimpleEmail
email.setHostName("smtp.googlemail.com")
email.setSmtpPort(465)
email.setAuthenticator(new DefaultAuthenticator("MY EMAIL Address", "MyPassword"))

如何在Azure上从Spark发送电子邮件?此代码在本地运行良好。我需要做些什么才能让它正常工作?

如何在Azure上的Spark上设置Java堆空间?

NameNode Java堆大小取决于许多因素,如集群上的负载、文件数量和块数量。1 GB的默认大小适用于大多数集群,尽管有些工作负载可能需要更多或更少的内存。

修改NameNode Java堆大小。

HDFS=>配置=>高级=>名称节点Java堆大小=2048 MB=>保存

修改YARN Java堆大小。

YARN=>配置=>高级=>ResourceManager Java堆大小=2048 MB=>保存

如何在Azure上从Spark发送电子邮件?此代码运行良好本地。我需要做些什么才能让它正常工作?

您可以参考SO线程中列出的解决类似问题的建议。

最新更新