Spark on YARN&Mesos:集群资源管理的挑战与实践

0 下载量 124 浏览量 更新于2024-08-28 收藏 203KB PDF 举报
"YARN&Mesos,论集群资源管理所面临的挑战" 在当前的大数据处理环境中,YARN(Yet Another Resource Negotiator)和Mesos是两种广泛使用的集群资源管理系统。YARN作为Hadoop生态系统的一部分,通常被Spark用户采用作为其应用的底层调度器。然而,随着Spark应用的深入发展,一些挑战逐渐显现,特别是在资源调度的粒度上。 TalkingData的研发副总裁阎志涛在一次讨论中提到,他们早在2013年就开始使用Spark 0.8.1,并且在Hadoop CDH4.3环境下运行。起初,Spark主要用于提升机器学习任务的效率。随着时间推移,由于Spark在开发效率和性能上的优势,公司决定全面迁移到Spark平台。随着任务数量的增长和并发需求的增加,引入YARN作为资源调度器变得必要。 在使用YARN时,他们采用了队列策略来区分不同类型的任务,但遇到了资源分配粒度不够精细的问题。资源分配通常是通过设置不同队列的资源百分比来实现的。当Spark 1.2版本宣布不再支持YARN的alpha版本时,他们面临了决策困境:要么自行修改Spark以兼容旧版YARN,要么升级Hadoop到CDH5.x,或者转向其他调度系统如Mesos。 由于升级现有Hadoop集群的风险,特别是考虑到已经存在的P级别数据,TalkingData选择了采用Mesos作为新的资源调度和管理系统。这样可以避免大规模的数据迁移风险,同时在新添加的机器上使用更现代的Hadoop版本。 Mesos作为一种分布式系统内核,提供了更为灵活的资源管理和调度能力,能更好地满足复杂应用的需求。它允许多个框架(如Spark、Kubernetes等)并存,每个框架都可以独立管理其资源,从而解决了YARN在某些场景下粒度控制不足的问题。 YARN和Mesos在集群资源管理上各有优缺点。YARN与Hadoop生态紧密集成,但资源调度粒度和版本兼容性有时成为挑战。而Mesos则提供了更高的灵活性和可扩展性,但可能需要更多的配置和管理工作。选择哪种系统取决于具体的业务需求、现有基础设施和团队的技能集。随着大数据技术的不断发展,资源管理系统的优化和选择将持续是业界关注的重要议题。