如何让Hadoop支持优先级且性能可预测

让运行Hadoop的公司产品都能够确保高优先级任务按时完成。

Apache Hadoop近十年的成长证明,用开源技术处理与访问海量数据并不是什么炒作。然而,Hadoop的一个缺点是不可预测性。Hadoop不能确保企业的关键任务按时完成,也不能完全发挥集群的性能。

YARN(一种新的Hadoop资源管理器)能够实现任务抢占,为队列中的其它任务腾出调度空间。容量调度器与公平调度器可以通过静态配置杀死那些占用集群资源的任务,从而让高优先级任务进行调度。

当队列中堆积了等待资源的任务,这些工具就可以派上用场了。不幸的是,它们无法处理已经发生实时争用问题(contention problems)的任务。YARN不会检测正在运行任务的资源利用率。因此,如果低优先级应用正在独占磁盘I/O或者使得其他硬件资源处于饱和状态,即使是高优先级也需要等待。

随着企业对Hadoop的使用更加深入,开始在多租户集群中执行关键业务,他们需要确保高优先级任务不被低优先级任务阻碍。这是Hadoop提供服务质量(QoS)的先决条件,但目前开源项目尚未解决。

让我们通过图1展示的3个节点简单集群来研究这个问题。这个例子中,队列中有两个任务准备由YARN资源管理器调度。资源管理器决定对HBase流关键业务和低优先级ETL任务在集群上同时运行,并对它们进行调度执行。

图1:3个节点简单集群,在YARN资源管理器中有两个任务

图2展示了没有QoS的集群运行情况。YARN确定集群有充足的资源可以同时运行低优先级和关键业务任务。在大多数情况下,需要关键业务任务在(服务级协议 SLA)给定的时间内执行完毕。低优先级任务没有这样的要求,它会先等待高优先级任务并延迟执行。

图2:高优先级任务由于占用磁盘I/O的低优先级任务执行放慢

在这种情况下,低优先级任务开始访问HDFS。接下来,关键业务任务需要访问HDFS相同地址的数据。由于两个任务的读写请求重叠,因此关键业务任务需要等待低优先级任务完成磁盘I/O操作。虽然在这个小例子里,这段等待时间不会导致严重的延迟或者对关键业务的SLA保证造成影响,但是在Hadoop多节点部署时,低优先级负载会很快累积并且争夺对硬件的访问。结果会对高优先级任务执行时间造成不可接受的严重影响。

要解决这个问题有以下几种方法。第一种是为业务关键任务和低优先级应用分别部署到不同的集群。这是一种通常推荐的最佳实践,同时也是确保QoS的完美逻辑解决方案。这种方法的缺点是浪费资源以及对不同集群的额外维护开销。另一种“保证QoS”的方法是维持一个集群,但是手动将低优先级任务限制在非高优先级任务调度的时间段执行。而实际操作中,通常公司会发现这些方法管理起来都过于复杂,不能使用。

一种更加高效的解决方法是监控集群中每个节点的硬件资源,通过实时数据了解哪些任务在控制资源(比如,磁盘I/O),以此解决资源竞争。

Hadoop开源社区将大多数注意力和焦点都专注于让Hadoop使用更简单,部署和操作更容易。尽管如此,还是有技术能够解决实时性能瓶颈。我所在的Pepperdata公司开发了一个解决方案,能够在集群上提供实时秒级监测。可以获得每个集群节点上各个人物运行时占用的硬件资源。利用这些信息,Pepperdata能够在算法上构建一个全局的实时视图,为RAM、CPU、磁盘和跨集群的网络利用率,并且根据需要对资源自动重新分配。与YARN资源管理器相反,后者能够控制任务执行的时间和方式。Pepperdata对硬件使用控制本身也是作为任务运行。

通过在配置文件中指定简单的集群配置,管理员可以指定哪些集群的硬件资源分配给特定分组、用户或任务。Pepperdata可以在实际运行中发现资源争夺并在繁忙的集群上动态预防性能瓶颈。这样就可以让低优先级任务变慢,从而使得高优先级任务可以满足SLA要求,并且最大程度让大量用户和任务能够在单集群上可靠地运行。Pepperdata会根据预设的优先级上下文中查找实时资源分配,以此决定哪些任务允许实时访问硬件资源。

任务执行性能取决于优先级和集群目前的条件,排除对硬件资源致命的争夺以及负载隔离。软件搜集了200个与CPU、RAM、磁盘I/O和网络带宽相关的统计数据。这些数据精确地指出了正在发生哪些问题。这样IT组就可以快速识别并修复问题任务。由于Pepperdata是在一个集中式Hadoop部署中测量真实的硬件使用情况,因此软件可以让IT精确跟踪和界定按部门、用户和任务分摊的共享几圈使用情况。通过保证稳定和可靠的集群性能,Pepperdata能够确保集群的QoS。

Sean Suchter是Pepperdata公司的CEO和联合创始人。他曾经担任微软硅谷技术研究中心的第一任总经理,领导将Facebook和Twitter集成到必应搜索。在加入微软之前,他管理雅虎搜索技术团队,也是Hadoop的第一个产品用户。Sean由于雅虎对Inktomi的收购加入到雅虎团队。他毕业于加利福尼亚理工学院,获得工程和应用科学学士学位。

原文发布于微信公众号 - CSDN技术头条(CSDN_Tech)

原文发表时间:2016-06-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

程序员从技术角度教你如何霸占“跳一跳”排行榜

它甚至比五六年前的飞机大战游戏都火爆,这种小游戏的火爆不仅仅是因为有魔性、有意思,更重要的是可以进行好友 PK! “跳一跳”的小游戏推出后,很多准备奋发向上的同...

2185
来自专栏数据派THU

独家 | 一文读懂Hadoop(一):综述

随着全球经济的不断发展,大数据时代早已悄悄到来,而Hadoop又是大数据环境的基础,想入门大数据行业首先需要了解Hadoop的知识。2017年年初apache发...

3438
来自专栏CSDN技术头条

多图技术贴:深入浅出解析大数据平台架构

目录: 什么是大数据 Hadoop介绍-HDFS、MR、Hbase 大数据平台应用举例-腾讯 公司的大数据平台架构 “就像望远镜让我们能够感受宇宙,显微镜让我们...

22410
来自专栏北京马哥教育

为Hadoop集群选择合适的硬件配置

随着Apache Hadoop的起步,云客户的增多面临的首要问题就是如何为他们新的的Hadoop集群选择合适的硬件。 尽管Hadoop被设计为运行在行业标准的硬...

3703
来自专栏小白课代表

Autodesk Navisworks 2016 安装教程。

Autodesk Navisworks软件能够将AutoCAD和Revit®系列等应用创建的设计数据,与来自其它设计工具的几何图形和信息相结合,将其作为整体的三...

1193
来自专栏IT技术精选文摘

分布式存储理论与实践初探 (一)

硬件基础 分布式存储系统是运行在通用计算机硬件体系结构上的底层系统,熟悉各种硬件的性能,能帮助我们更好的调整架构,最大限度地发挥硬件的价值。 基础参数 常见硬件...

2395
来自专栏个人分享

用户画像的技术选型与架构实现

这里讲解下用户画像的技术架构和整体实现,那么就从数据整理、数据平台、面向应用三个方面来讨论一个架构的实现(个人见解)。

2192
来自专栏小白课代表

Autodesk Navisworks 2018 安装教程。

Autodesk Navisworks软件能够将AutoCAD和Revit®系列等应用创建的设计数据,与来自其它设计工具的几何图形和信息相结合,将其作为整体的三...

1671
来自专栏社区的朋友们

Amazon Aurora 深度探索(一)

本文对 Aurora 系统的实现从整体架构、存储、事务处理三个方面进行深入探讨,基于其论文和相关资料讨论具体实现细节,又跳出其外、从数据库内核技术实现的角度对 ...

2.1K2
来自专栏about云

搭建hadoop集群必参考的文章:为Hadoop集群选择合适的硬件配置

问题导读 1.哪些情况会遇到io受限制? 2.哪些情况会遇到cpu受限制? 3.如何选择机器配置类型? 4.为数据节点/任务追踪器提供的推荐哪些规格? 随着Ap...

4587

扫码关注云+社区

领取腾讯云代金券