热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spark在Mesos上运行的常见问题及解决方案分析

在Mesos上运行Spark时,常见的问题是Slave节点可能会因应用程序资源消耗过大而耗尽资源。本文分析了这一问题的成因,并提供了多种有效的解决方案,包括资源调度优化、任务分配策略调整以及系统配置改进等,帮助用户提升集群的稳定性和性能。

该文章写于spark1.6.2版本。
由于Fine mode对短任务性能影响过大,所以采用的是Coarse mode方式进行调度。

主要的一些问题:

  1. 1.6版本开始dynamic allocation无法使用

    例如spark-shell之类的程序,空闲时期资源长期占用却无法释放,造成资源利用率低下。

  2. 单个slave上无法启动多个executor

    每个mesos slave上一个application只能启动一个executor。带来的问题是&#xff0c;如果你的slave是<20 cores,100G RAM>&#xff0c;一个需求<20 cores&#xff0c;10G RAM>的application就会将其资源用光&#xff0c;造成90G RAM的浪费。
    具体可参考http://blog.csdn.net/lsshlsw/article/details/51820420

  3. 每个executor使用的cpu数量不可控

    例如某个application申请<5 cores,10G RAM>&#xff0c;如果每个slave只有4 cores,就会造成出现的两个executor,一个是<4 cores,10G RAM>&#xff0c;另一个是<1 core, 10G RAM>。
    因为一个executor运行了过多的task&#xff0c;在内存不足的情况下就非常容易造成OOM,长时间GC等问题。
    具体可参考http://blog.csdn.net/lsshlsw/article/details/51820420

  4. blockmgr没有自动删除
    大量占用磁盘空间

这些问题都在2.0中得到了解决&#xff0c;但是2.0的改动较大&#xff0c;涉及到大量程序的修改&#xff0c;因此可以将如下的改进和bugfix都合到了1.6.2上&#xff0c;重新build一个版本&#xff0c;问题解决。

已有的解决方案&#xff1a;

  • [SPARK-12330][MESOS] Fix mesos coarse mode cleanup
  • [SPARK-13002][MESOS] Send initial request of executors for dyn allocation
  • [SPARK-5095][MESOS] Support launching multiple mesos executors in coarse grained mesos mode.
  • [SPARK-12583][MESOS] Mesos shuffle service: Don’t delete shuffle files before application has stopped
  • [SPARK-13001][CORE][MESOS] Prevent getting offers when reached max cores

修复后的集群济源利用率

修改后的集群负载情况(ganglia):

修改后的集群负载情况(ganglia):


推荐阅读
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 本文介绍如何通过SSH协议使用Xshell远程连接到Ubuntu系统。为了实现这一目标,需要确保Ubuntu系统已安装并配置好SSH服务器,并保证网络连通性。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
author-avatar
邵小辕_669
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有