热门标签 | 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):


推荐阅读
  • 配置Windows操作系统以确保DAW(数字音频工作站)硬件和软件的高效运行可能是一个复杂且令人沮丧的过程。本文提供了一系列专业建议,帮助你优化Windows系统,确保录音和音频处理的流畅性。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文介绍了如何通过配置 Android Studio 和 Gradle 来显著提高构建性能,涵盖内存分配优化、并行构建和性能分析等实用技巧。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
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社区 版权所有