Spark on Yarn任务yarn-site.xml配置参数说明

在SparkonYARN环境中,可能出现资源不足、应用无法启动、容器失败等问题。这些问题通常由资源配置、安全设置或代码问题引起。解决方案包括调整YARN和Spark配置、检查日志和优化资源使用。maxRunningApps参数限制了队列中的并发应用数,防止资源争用。YARN配置如内存和CPU资源管理、日志聚合等对任务性能有直接影响。
摘要由CSDN通过智能技术生成

在使用Spark on YARN时,常见的问题可能包括:

  • 资源不足错误:当YARN集群中的资源不足以支持Spark应用程序时,会出现此错误。可以通过增加YARN集群的资源或减少Spark应用程序的资源请求来解决此问题。

  • 应用程序无法启动:这可能是由于安全设置、配置错误或Spark应用程序文件损坏等原因引起的。需要检查日志并排除故障。

  • 容器退出或失败:这可能是由于内存或CPU限制、磁盘空间不足或节点故障等原因导致的。可以通过检查容器和节点级别的日志来诊断问题。

  • 资源泄漏:在长时间运行的Spark应用程序中,可能会出现资源泄漏,例如内存泄漏或文件句柄泄漏。需要进行代码审查和性能测试,并调整应用程序的配置参数。

  • 系统性能下降:如果YARN集群或Spark应用程序出现系统性能下降,则需要检查各种指标,例如CPU使用率、磁盘I/O和网络延迟等,并尝试优化Spark应用程序的配置参数。

maxRunningApps 参数

maxRunningApps是YARN队列的一个参数,用于控制队列中最大同时运行的应用程序数。
当队列中正在运行的应用程序数量达到该参数指定的值时,队列将拒绝提交更多的应用程序,
直到有应用程序完成并释放资源。该参数可以帮助避免队列中过多的应用程序同时运行,从而导致资源争用和性能问题。

YARN配置文件(yean-site.xml)对任务的影响

yarn.resourcemanager.hostname

指定 YARN 的 ResourceManager 的主机名或 IP 地址。此配置项在集群中的所有节点上必须保持一致。

yarn.resourcemanager.address

指定 YARN 的 ResourceManager 的地址,格式为“hostname:port”。

yarn.nodemanager.vmem-check-enabled

是否启用虚拟内存检查。如果启用,则会在启动 NodeManager 时检查虚拟内存是否足够。

yarn.nodemanager.local-dirs

指定 NodeManager 使用的本地目录。如果有多个目录,用逗号分隔。

yarn.app.mapreduce.am.task.timeout

其中,value的值表示任务最大允许执行时间,单位是毫秒。例如,上面的配置设置任务最大允许执行时间为300000毫秒,即5分钟。

yarn.nodemanager.resource.memory-mb

指定每个NodeManager可以使用的最大内存(以MB为单位),影响Spark任务的内存分配。

yarn.scheduler.minimum-allocation-mb

指定最小的内存分配量(以MB为单位),影响Spark任务的内存分配。

yarn.scheduler.maximum-allocation-mb

指定最大的内存分配量(以MB为单位),影响Spark任务的内存分配。

yarn.nodemanager.resource.cpu-vcores

指定 NodeManager 的可用虚拟核心数。

yarn.application.classpath

指定应用程序使用的类路径。如果应用程序需要使用特定的库或依赖项,则可以将其添加到该配置项中。

yarn.log-aggregation-enable

指定是否启用日志聚合。如果启用,则 NodeManager 会将应用程序的日志聚合到一个文件中,并将其上传到 HDFS。

yarn.timeline-service.enabled

指定是否启用时间线服务。如果启用,则可以跟踪应用程序的历史和状态信息。

yarn.nodemanager.local-dirs

指定NodeManager本地目录的路径,用于存储Spark任务的数据和日志。

yarn.nodemanager.log-dir

指定NodeManager日志目录的路径,用于存储Spark任务的日志。

yarn.nodemanager.aux-services

指定NodeManager需要启动的辅助服务,例如mapreduce_shuffle,用于支持Spark任务的数据传输。

yarn.nodemanager.aux-services.mapreduce_shuffle.class

指定mapreduce_shuffle服务的实现类,用于支持Spark任务的数据传输。

yarn.nodemanager.remote-app-log-dir

指定应用程序日志存储的远程目录,用于存储Spark任务的日志。

更多配置参数看官网:-》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

P("Struggler") ?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值