阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop虚拟化扩展(HVE)之资源扩展技术

98次阅读
没有评论

共计 3986 个字符,预计需要花费 10 分钟才能阅读完成。

背景

在虚拟化的云环境中,Hadoop 可以有更好的“弹性”,这是云计算的一个重要优势,例如亚马逊的 EMR(ElasticMapReduce)服务, 用户可以迅速的在云中根据需求部署一个 Hadoop 集群,运行计算任务,并且用户可以向集群动态的添加或删除计算节点。

这里存在着一个潜在问题,Haodop 的数据节点并非天生的“有弹性”,删除一个数据节点意味着需要重新复制存储在这个节点的数据,这是一个缓慢的过程,并且占用网络带宽。

Hadoop 虚拟化扩展 (HVE) 之资源扩展技术

图 1:存储计算分离

存储计算分离可以很好的解决这个问题,如上图所示,我们可以静态的为每个物理结点部署一个数据节点,动态的部署和调整每个物理节点上的计算节点。另外可以利用虚拟机更好的隔离性,为每个租户提供单独的计算节点,提供多租户 (Multi-Tenancy) 服务。

HVE 的资源扩展技术就是对 Hadoop 计算层的扩展,通过增加 Hadoop 垂直扩展和水平扩展的动态性,配合资源共享,最终达到优化资源利用的目的。

技术

资源过量配置(Resource Overcommitment)

虚拟机之间的资源共享通常是通过资源过量配置来实现的。大多数的虚拟机 Hypervisor,比如 VMware 和 Xen,都支持资源过量配置。以 VMware ESX 为例,他允许为每个虚拟机配置预留资源 (Reservation),最大资源(Limit) 和共享 (Share) 来控制同一物理机上多个虚拟机之间的资源共享,以及资源不足时的分配策略。

Hadoop 虚拟化扩展 (HVE) 之资源扩展技术

图 2:资源过量配置

有了这个技术,多个应用之间就可以共享资源,比如在其他应用繁忙的时候,可以使 Hadoop 计算节点少占用一部分资源,而在其他应用空闲的时候,Hadoop 节点可以分配到更多资源。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-11/92385p2.htm

相关阅读

Hadoop 2.0 安装向导 (0.23.x) http://www.linuxidc.com/Linux/2012-05/61463.htm

Hadoop 1.2.1 单节点安装 (Single Node Setup) 步骤 http://www.linuxidc.com/Linux/2013-08/89377.htm

在 CentOS 上安装 Hadoop http://www.linuxidc.com/Linux/2013-08/88600.htm

Ubuntu 12.04 安装 Hadoop http://www.linuxidc.com/Linux/2013-08/88187.htm

CentOS 6.3 x86_64 安装与配置 Hadoop-1.0 http://www.linuxidc.com/Linux/2013-07/87959.htm

Hadoop 入门 –Hadoop2 伪分布式安装 http://www.linuxidc.com/Linux/2013-06/86403.htm

Hadoop2.2.0 单节点安装及测试 http://www.linuxidc.com/Linux/2013-10/91911.htm

Hadoop 计算节点垂直扩展

仅仅通过 Hypervisor 的资源调度并不能很好的达到资源共享的目的,目前 Hadoop 的资源配置是静态的:

1. 在 MapReduce v1 中,资源通过每个 TaskTracker 的槽位数配置项配置,槽位就是一定量 CPU 和内存资源抽象

2. 在 MapReduce v2 中,资源通过每个 NodeManager 的 CPU 和内存配置项直接配置

这些配置已经启动是无法动态调整的,这样在计算节点虚拟机资源不足的情况下,Hadoop 仍然会分配过量的任务到这个节点,任务的执行速度会大幅度降低,从而影响整个集群的性能。

HVE 的资源扩展技术通过动态化 Hadoop 资源配置来解决这个问题:

1. 在计算节点运行过程中,用户可以动态设置每个计算节点的槽位数 (MRv1) 或者资源数(MRv2)

2. 当计算节点资源不足时,用户或者 VHM(Virtual Hadoop Manager)可以自动调整其资源配置,尽量避免资源竞争导致的性能下降

在 MRv1 中,调整槽位后,正在运行的任务如果超过了槽位数,任务也不会被杀死,而是不再接受新任务,直至多余的任务完成,所以资源回收的速度可能会比较慢

在 MRv2 中,社区正在开发任务抢占功能,有了抢占功能后,预计可以提高资源回收的速度

Hadoop 虚拟化扩展 (HVE) 之资源扩展技术

图 3:MRv1 的动态资源调整

Hadoop 虚拟化扩展 (HVE) 之资源扩展技术

图 4:MRv2 的动态资源调整

Hadoop 计算节点水平扩展

除了对每个计算节点内部的垂直式的资源伸缩,Hadoop 广为人知的还是其良好的水平可扩展性,Hadoop 可以动态的上线或者下线 (Decommission) 计算节点。在虚拟化环境中,为支持更好的弹性,计算节点的上下线操作会更加频繁。

Hadoop 虚拟化扩展 (HVE) 之资源扩展技术

图 5:虚拟化环境下的 Hadoop 水平扩展

这样引发一个问题,就是在下线计算节点时,其上正在运行的任务会被杀死,已经完成的 Map 任务的中间结果也会丢失,所以强制下线节点会导致大量任务重新执行,延迟整个作业的执行。

HVE 的资源扩展技术通过增加安全下线 (Graceful Decommission) 功能来解决这个问题:

1. 用户发出安全下线计算节点命令后,先将该计算节点的槽位数或者资源配置为 0,使其不再接受新任务

2. 等待该计算节点上任务都执行完毕,中间数据也都被使用过之后,再停止该计算节点。

总结

HVE 的资源扩展技术通过对 Hadoop 核心添加动态资源特性,以支持对 Hadoop 集群计算层的动态的水品和垂直扩展,为 Hadoop 部署在虚拟化环境中增加了如下优点:

1. 能够使 Hadoop 与其他应用,或者多个 Hadoop 集群之间动态共享资源,可以根据资源需求动态的扩展或者收缩集群,提高资源利用率;

2. 更好的多租户支持,通过将不同的用户的作业隔离在不同的虚拟节点,可以在保证资源利用率的基础上提高隔离性和安全性。

本文简要介绍了 HVE 资源扩展技术,详细的设计实现可以参考参考文档中的相关 JIRA。

参考文档

1.MemoryOvercommitment in the ESX Server: http://labs.vmware.com/vmtj/memory-overcommitment-in-the-esx-server

2.Dynamicresource configuration JIRA: YARN-291, MAPREDUCE-4900

3. Graceful Decommission JIRA: YARN-914, MAPREDUCE-5381

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

背景

在虚拟化的云环境中,Hadoop 可以有更好的“弹性”,这是云计算的一个重要优势,例如亚马逊的 EMR(ElasticMapReduce)服务, 用户可以迅速的在云中根据需求部署一个 Hadoop 集群,运行计算任务,并且用户可以向集群动态的添加或删除计算节点。

这里存在着一个潜在问题,Haodop 的数据节点并非天生的“有弹性”,删除一个数据节点意味着需要重新复制存储在这个节点的数据,这是一个缓慢的过程,并且占用网络带宽。

Hadoop 虚拟化扩展 (HVE) 之资源扩展技术

图 1:存储计算分离

存储计算分离可以很好的解决这个问题,如上图所示,我们可以静态的为每个物理结点部署一个数据节点,动态的部署和调整每个物理节点上的计算节点。另外可以利用虚拟机更好的隔离性,为每个租户提供单独的计算节点,提供多租户 (Multi-Tenancy) 服务。

HVE 的资源扩展技术就是对 Hadoop 计算层的扩展,通过增加 Hadoop 垂直扩展和水平扩展的动态性,配合资源共享,最终达到优化资源利用的目的。

技术

资源过量配置(Resource Overcommitment)

虚拟机之间的资源共享通常是通过资源过量配置来实现的。大多数的虚拟机 Hypervisor,比如 VMware 和 Xen,都支持资源过量配置。以 VMware ESX 为例,他允许为每个虚拟机配置预留资源 (Reservation),最大资源(Limit) 和共享 (Share) 来控制同一物理机上多个虚拟机之间的资源共享,以及资源不足时的分配策略。

Hadoop 虚拟化扩展 (HVE) 之资源扩展技术

图 2:资源过量配置

有了这个技术,多个应用之间就可以共享资源,比如在其他应用繁忙的时候,可以使 Hadoop 计算节点少占用一部分资源,而在其他应用空闲的时候,Hadoop 节点可以分配到更多资源。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-11/92385p2.htm

相关阅读

Hadoop 2.0 安装向导 (0.23.x) http://www.linuxidc.com/Linux/2012-05/61463.htm

Hadoop 1.2.1 单节点安装 (Single Node Setup) 步骤 http://www.linuxidc.com/Linux/2013-08/89377.htm

在 CentOS 上安装 Hadoop http://www.linuxidc.com/Linux/2013-08/88600.htm

Ubuntu 12.04 安装 Hadoop http://www.linuxidc.com/Linux/2013-08/88187.htm

CentOS 6.3 x86_64 安装与配置 Hadoop-1.0 http://www.linuxidc.com/Linux/2013-07/87959.htm

Hadoop 入门 –Hadoop2 伪分布式安装 http://www.linuxidc.com/Linux/2013-06/86403.htm

Hadoop2.2.0 单节点安装及测试 http://www.linuxidc.com/Linux/2013-10/91911.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计3986字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中