大数据集群在物理机与虚拟机部署分析

1、摘要

云计算虚拟化的主要一个目的是解决资源利用率问题,即把利用率较低的物理资源虚拟化成多个更小的逻辑资源,按需分配给多个应用,提升资源的使用效率;大数据技术对资源的需求与虚拟化技术方向正好相反,单台物理服务器资源无法满足大数据对存储容量和计算性能的要求,需要多台物理服务器资源组成集群实现分布式框架来提升储存容量和计算能力,本文将重点分析大数据集群部署在物理机和虚拟机的性能差别。

Hadoop是一个运行于大规模集群上的分布式并行计算框架,其核心技术包括:分布式存储(HDFS)和分布式计算(MapReduce)。

HDFS是建立在Linux操作系统上的一个虚拟分布式文件系统,可以将一个大数据集切割成多个较小的数据块(Block),并按照哈希分片(Hash Partition)、虚拟桶(Virtual Buckets)等算法将数据块有序存储在集群中的不同数据节点上,以提高容错性和分布式能力。

MapReduce包含Map和Reduce两个操作。MapReduce框架把一个计算任务拆分成若干个Map任务,然后分配到不同的主机节点上去执行,每一个Map任务处理输入数据中的一部分,当Map任务完成后,它会生成一些中间文件,这些中间文件将会作为Reduce任务的输入数据,Reduce对数据进行汇总处理并输出最终结果。

MapReduce计算需要大规模的读写数据,大容量网络I/O也就成为影响MapReduce计算性能的关键点之一。降低网络I/O有多种方式,与传统计算模式“moving data to jobs”不同,Hadoop提出“moves jobs to data”,即把计算任务推到数据所在的节点,实现本地计算,减少跨节点数据读取来提升性能。

在大数据集群部署环境选择方面,用户对构建物理机集群还是虚拟机集群会有很多疑惑,而正确理解Hadoop的基本原理,特别是“Moving jobs to data”降低网络I/O提升计算性能,可以有助于用户做出正确的选择。

2、大数据物理机集群

图1 大数据物理机集群

如图1所示,大数据物理机集群构建于X86服务器硬件,具备本地计算资源和本地硬盘资源,可以实现计算节点和数据节点部署在同一个节点,满足“Moving jobs to data”的原则,计算过程中减少数据在服务器之间的移动,降低网络I/O,实现快速数据读取和计算。此外,大数据物理机集群还具有下列优点:

(1)大数据物理机集群采用share-nothing技术架构,可以实现Scale out横向扩展,集群主机数量从几台到几千台规模,支持PB、EB级海量数据存储和计算能力的线性扩展。

(2)每台物理服务器节点可以配置多块硬盘,每块硬盘采用独立挂载方式,即每块硬盘具备独立的I/O能力,可以支持数据并行读写,实现高速数据吞吐能力。

(3)大数据物理机集群主机节点之间存在数据交换,通常会要求网卡满负荷运作,物理机可以通过多网卡负荷分担来提高网络I/O性能。

3、大数据虚拟机集群

图2 大数据虚拟机集群

如图2所示,虚拟化技术以提升物理服务器CPU、内存等资源利用率为目标,把一台物理服务器CPU、内存和存储等资源虚拟化成多组逻辑资源,每一组逻辑资源对应一个虚拟机VM,一台物理服务器虚拟化成多个VM,以VM为单元分配给多个APP使用可以达到服务器资源利用效率最大化要求。

与大数据物理机集群相比,大数据虚拟机集群存在下列问题:

(1)虚拟机集群计算能力极大地降低。Hadoop采用分布式计算框架,需要通过大数据集群的多个主机分担执行同一个计算任务,主机的CPU、内存和磁盘I/O能力越强则处理性能就越快。虚拟化技术把服务器物理资源虚拟化成多个逻辑资源,不仅没有提升大数据集群的CPU、内存和磁盘的I/O能力,而且hypervisor等虚拟化处理还会带来额外的资源消耗,致使单台物理服务器的处理性能会下降10%左右。

(2)虚拟机集群I/O效率极大地降低。大数据集群每次执行计算任务时,需要大量的读写数据,虚拟机采用共享存储或统一存储,Hadoop要求的“Moving jobs to data”的原则无法实现,网络I/O将会大幅增加,I/O效率极大地降低。此外,多个虚拟机网卡会共用一个物理网卡,虚拟网卡带宽在大数据量交换的情况下也会成为瓶颈。

(3)虚拟机集群无法支持计算和存储的线性扩展。共享存储或统一存储在多虚拟机并发读写时会面临严重的I/O冲突问题,集群主机规模将受到限制。

4、大数据物理机集群和虚拟机集群性能对比测试

为了证明上述对大数据物理机集群和虚拟机集群的理论分析正确性,我们以一个标准的大数据分布式计算任务Terasort排序来做性能对比测试。Terasort的Map和Reduce都会产生大量的中间数据,需要大规模的读写硬盘,能够有力的证明物理机集群和虚拟机集群的性能差异。

图3 Terasort排序

如图3所示,Terasort是基于Hadoop的一个排序作业,把要排序的数据先划成K个数据块。在Map阶段,每个Map Task都会将数据划分成R个数据块,其中R为Reduce Task个数,而且第i(i>0)个数据块的所有数据都会比第i+1个中的数据大;在Reduce阶段,第i个Reduce task处理(进行排序)所有map task的第i块,这样第i个Reduce task产生的结果均会比第i+1个大,最后将1~R个Reduce task的排序结果顺序输出,即为最终的排序结果。

采用相同服务器配置,构建大数据物理机集群和大数据虚拟机集群,环境及测试结果如下:

(1)3台物理服务器组成大数据物理机集群配置如表1所示。

表1大数据物理机集群配置

用途

CPU

内存

系统盘

数据硬盘

网络

节点一

4路8核

128G

1*600G

4*600G

10GbE

节点二

4路8核

128G

1*600G

4*600G

10GbE

节点三

4路8核

128G

1*600G

4*600G

10GbE

(2)6台虚拟机组成大数据虚拟机集群配置如表2所示

表2大数据虚拟机集群配置

用途

CPU

内存

系统盘

数据硬盘

网络

节点一

2路8核

62G

1*600G

1.2T

10GbE

节点二

2路8核

62G

1*600G

1.2T

10GbE

节点三

2路8核

62G

1*600G

1.2T

10GbE

节点四

2路8核

62G

1*600G

1.2T

10GbE

节点五

2路8核

62G

1*600G

1.2T

10GbE

节点六

2路8核

62G

1*600G

1.2T

10GbE

(3)测试结果对比如表3所示

表3测试结果

测试项目

物理机集群性能

虚拟机集群性能

虚拟机集群/物理机集群

100G 数据生成

295秒

395秒

133.9%

100G数据Terasort排序

3006秒

4342秒

144.4%

从上面的结果可以看出,大数据虚拟集群主机数量虽然比大数据物理集群主机数量的一倍,但处理性能却低40%。由此可见,大数据物理集群比大数据虚拟集群在性能上具备较大优势。

5、大数据虚拟机集群风险点

大数据虚拟机集群主要风险点在以下几方面:

性能方面

(1)集群整体性能降低。对TBDS/MPP产品在同等配置物理机与虚拟机实际的性能测试对比表明,虚拟机整体性能较物理机下降约40%左右;

(2)虚拟机集群计算能力极大地降低。TBDS/MPP采用分布式计算框架,需要通过大数据集群的多个主机分担执行同一个计算任务,主机的CPU、内存和磁盘I/O能力越强则处理性能就越快。虚拟化技术把服务器物理资源虚拟化成多个逻辑资源,不仅没有提升大数据集群的CPU、内存和磁盘的I/O能力,而且hypervisor等虚拟化处理还会带来额外的资源消耗,致使单台物理服务器的处理性能会下降10%左右;

(3)虚拟机无法利用分布式原有技术优势。TBDS/MPP提升性能的关键是尽量利用各自主机的本地计算资源和本地硬盘资源进行分布式计算,避免各主机之间进行大量的数据重分布,采用物理机数据分布可控,SQL执行、优化可控,如果采用虚拟机,数据分布无法保障和物理机一致的分布,导致物理机原本不需要重分布的数据也会做重分布,从而导致CPU、IO更加繁忙,SQL性能在极端情况下会下降2倍以上。

稳定性方面

(1)虚拟机稳定性远弱于物理机。虚拟机本身是软件,虚拟机自身也会出BUG

(2)物理机宕机,影响上层虚拟机将全部不可用。物理机有硬件需要升级时,升级出现问题将影响上层虚拟机的运行

可扩展性方面

虚拟机集群无法支持计算和存储的线性扩展。共享存储或统一存储在多虚拟机并发读写时会面临严重的I/O冲突问题,集群主机规模将受到限制

数据安全性方面

使用虚拟机数据安全性无法保障。TBDS/MPP在物理机部署的情况下,主副本分布在不同的物理机上,从而保障一台物理机宕机的情况下,在其它物理机上有可用副本,而使用虚拟机方式部署副本,可能部分数据的主、副本会在同一个物理机上,这样就失去主副本高可用的作用,极端情况下一台物理机故障会导致整个集群数据不完整,从而导致集群不可用。

开发和运维成本方面

使用虚拟机会导致开发运维成本数倍增加。在同等物理资源需求的情况下,虚拟机数量会是物理机的2-3倍,原本1个物理集群需要拆分成2-3个集群,集群间会有大量数据传输,一方面业务开发复杂度会大幅增加,另一方面运维成本也会多出2-3倍。

6、结束语

大数据对计算能力、存储资源、可扩展性都要求很高,单台物理服务器的CPU、内存和存储资源不足以支撑TBDS/MPP对数据存储容量和计算效率的要求,要求把多台服务器构建统一的集群进行分布式存储和计算,即N:1。而虚拟化技术以提升资源利用效率为目标,把一台物理服务器CPU、内存和存储等资源虚拟化成多组逻辑资源,即1:N。虚拟化1:N的技术特点实际上与大数据集群N:1的技术要求相背离,虚拟机构建的大数据集群处理性能、稳定性、可扩展性数据安全性、开发和运维成本等方面都会在实际生产环境中遇到较多问题。

综上所述,对大数据量和高性能要求的生产环境,建议采用物理服务器集群部署大数据;对于小数据量、性能要求不高的实验环境,可以采用虚拟机集群部署大数据。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值