我正在使用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线程中列出的解决类似问题的建议。