azure - 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 的默认大小适用于大多数集群,尽管某些工作负载可能需要更多或更少的内存。
HDFS => 配置 => 高级 => NameNode Java 堆大小 = 2048 MB => 保存
修改 YARN Java 堆大小。
YARN => 配置 => 高级 => ResourceManager Java 堆大小 = 2048 MB => 保存
如何从 Azure 上的 Spark 发送电子邮件?此代码在本地运行良好。我需要做什么才能使它正常工作?
您可以参考解决类似问题的SO线程中概述的建议。
推荐阅读
- r - 使用 ggplot 映射,按位置分面
- php - 从后缀字符串中获取秒数
- amazon-web-services - 使用 CloudWatch 写入日志:getNextToken 错误
- matlab - Matlab 矩阵地址
- php - Laravel 8多个where子句查询不起作用
- sql-server - 是否可以在没有直接相关列的情况下从两个表中查询数据?
- ios - 跨多个应用程序订阅
- oracle - 带有时区的 Java 和 Oracle 时间戳
- image - 我们可以从 Windows 机器上构建的 docker 镜像在 Linux 机器上运行容器吗?
- sql - Prestashop 1.7 如何将数据从数据库显示到 tpl