`
小野bupt
  • 浏览: 14741 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

实验室要做一个hadoop上传文件性能测试,自己用实验室破电脑做了个简单的测试

 
阅读更多

硬件环境:

实验室的3台老机器组成的集群,配置:

NameNode

CPU:

Intel(R)Pentium(R)DualCPUE2160@1.80GHz

size:1800MHz

capacity:1800MHz

width:64bits

clock:200MHz

Memory:

size:2GiB

width:64bits

Network:

description:Ethernetinterface

product:RTL-8139/8139C/8139C+

endor:RealtekSemiconductorCo.,Ltd.

size:100Mbit/s

capacity:100Mbit/s

width:32bits

clock:33MHz

DISK:

description:ATADisk

product:ST3160815AS

vendor:Seagate

size:149GiB(160GB)

Slave1

CPU:

  product:Intel(R)Core(TM)2DuoCPUE7300@2.66GHz

vendor:IntelCorp.

physicalid:1

  businfo:cpu@0

version:6.7.6

size:2650MHz

width:64bitsFedorarelease15(Lovelock)32bit

Memory:

description:SystemMemory

size:2GiB

width:64bits

clock:800MHz(1.2ns)

Network:

description:Ethernetinterface

product:88E8056PCI-EGigabitEthernetController

vendor:MarvellTechnologyGroupLtd.

size:100Mbit/s

capacity:1Gbit/s

width:64bits

clock:33MHz

DIsk:

description:ATADisk

product:HitachiHDP72501

size:149GiB(160GB)

capabilities:partitionedpartitioned:dos

Slave2

CPU:

description:CPU

product:Intel(R)Core(TM)2CPU6300@1.86GHz

vendor:IntelCorp.

slot:Socket775

size:1600MHz

capacity:4GHz

width:64bits

clock:266MHz

MEMORY:

description:SystemMemory

size:2GiB

description:DIMM800MHz(1.2ns)

size:2GiB

width:64bits

clock:800MHz(1.2ns)

Network:

description:Ethernetinterface

product:RTL8111/8168BPCIExpressGigabitEthernetcontroller

vendor:RealtekSemiconductorCo.,Ltd.

size:100Mbit/s

capacity:1Gbit/s

width:64bits

clock:33MHz

Disk:

description:ATADisk

product:HitachiHDS72103

vendor:Hitachi

size:298GiB(320GB)

3台机器用5类线接到一台FASTFR516交换机上。

路由器型号FASTFR516

网络标准:IEEE802.3IEEE802.3uIEEE802.3xIEEE802.1X

网络协议:TCP/IPDHCPICMPNATPPPoESNTP

传输速率:10/100Mbps

端口结构:非模块化

广域网接口:1

局域网接口:16

接口介质:10Base-T3类或3类以上UTP

100Base-TX5UTP

软件环境:

3台机器上都装着Fedorarelease15(Lovelock)32bithadoop1.0.0(,集群设置副本数量Replication=2集群上启动了map-reduce,HDFSSSH服务。没有运行任何其它job)

测试过程:

1.首先将hdfs的上传速度和scp的速度做对比,在集群中找了一个节点Slave1,向hdfsput一个643MB的文件(hdfs文件块64MB2个节点,每个节点大约会有5个文件块(共11)):

[hadoop@Slave1Downloads]$timehadoopfs-put2008.zip/usr/hadoop

real1m6.896s

user0m7.197s

sys0m2.256s

用了66.896秒,平均速度为9.6M/s.

2.再看看下载的速度,将本地的文件删除,从hdfsget一个:

[hadoop@Slave1Downloads]$timehadoopfs-get/usr/hadoop/2008.zip2008.zip

real0m19.830s

user0m5.269s

sys0m2.311s

下载的速度很快,只用了19.830秒,约32.4MB/s的速度.

3.从该节点向另外一个节点scp该文件:

[hadoop@Slave1Downloads]$scp2008.ziphadoop@10.103.240.152

2008.zip100%643MB11.1MB/s00:58

real1m1.427s

user0m10.563s

sys0m2.714s

用了61.427,平均速度为10.5M/s.

4.再看一下Slave1在单点内文件传输效率,

[hadoop@Slave1Downloads]$timecp2008.zip~

real0m19.358s

user0m0.014s

sys0m1.201s

用了19.358秒,平均速度为33.2MB/s

显然,和Slave1单点下载HDFS文件速度差不多,估计是由于HDFS块本地化的原因。查看2008.zip文件的block分布:

分析:由于副本数为2,且只有Slave1Slave2两个数据节点,因此在每个节点上都有一份完整的2008.zip文件。这样在单点下载HDFS文件时,总时间相当于本地文件复制加上与HDFS系统交互的所用的时间。

5.因此我们在NameNode上下载该文件:

[hadoop@MasterDownloads]$timehadoopfs-get/usr/hadoop/2008.zip2008.zip

real0m59.757s

user0m14.479s

sys0m8.009s

用了59.757秒,平均速度为10.7MB/s.

NameNode上上传该文件:

[hadoop@Master~]$timehadoopfs-putDownloads/2008.zip/usr/hadoop/2008.zip

real1m13.005s

user0m10.672s

sys0m3.932s

用了73.005s,平均速度为8.8MB/s.

6.之前都是测试的单个文件传输速率,我们来看一下多个小文件的传输速率。

JarsLib文件夹是由31594个小文件组成,总共467M

我们在Slave1上进行测试。首先向HDFS上传该文件:

[hadoop@Slave1~]$timehadoopfs-putJarsLib//usr/hadoop/JarsLib

real6m18.592s

user0m26.000s

sys0m11.101s

用了378.592秒,1.2MB/s.

然后我们从HDFS上下载该文件:

[hadoop@Slave1~]$timehadoopfs-get/usr/hadoop/JarsLib~

real1m11.225s

user0m16.483s

sys0m6.683s

用了71.225秒,平均6.5MB/s.

从该节点向另外一个节点scp该文件:

[hadoop@Slave1Downloads]$timescp-rJarsLibhadoop@10.103.240.152

real1m1.755s

user0m8.115s

sys0m3.579s

用时61.755s,平均速度7.6MB/s

单点内复制速度:

[hadoop@Slave1~]$timecp-rJarsLib/~/Downloads/

real0m15.001s

user0m0.076s

sys0m1.631s

用了15.001s,平均速度为31.3MB/s.

然后我们在NameNode上下载该文件:

[hadoop@Master~]$timehadoopfs-get/usr/hadoop/JarsLib~

real1m31.138s

user0m32.430s

sys0m15.251s

用时91.138s,平均速度5.1MB/s.

NameNode上上传该文件。

[hadoop@Master~]$timehadoopfs-putJarsLib//usr/hadoop/JarsLib

real7m4.508s

user0m44.582s

sys0m16.922s

用了424.450s,p平均速度为1.1MB/s.

小结:

编号

传输方向

643MB(1个文件)

467M(34594个文件)

传输时间

传输速率

传输时间

传输速率

1

Slave1->HDFS

66.896s

9.6MB/s

378.592s

1.2MB/s

2

Slave1->Slave2

61.427s

10.5MB/s

71.225s

6.5MB/s

3

HDFS->Slave1

19.830s

32.4MB/s

61.755s

7.6MB/s

4

Slave1->Slave1

19.358s

33.2MB/s

15.001s

31.3MB/s

5

HDFS->NameNode

59.757s

10.7MB/s

91.138s

5.1MB/s

6

NameNode->HDFS

73.005s

8.8MB/s

424.450s

1.1MB/s

分析16,文件个数对文件传输效率的影响是十分巨大地,不管是在DataNodes内或DataNodes外,对于本实验的两个文件来说,文件上传效率相差8倍左右。

分析34,由于数据的本地化,Slave1上保存了文件的所有数据,因此对于少量大文件来说,传输速率和本地磁盘复制的速率相差不大。而随着大量小文件的增加,本地磁盘速率影响较小,而HDFS传输的速率搜到较大影响。本例中相差4倍多。

分析56datanodes以外的节点上传文件为单点输出,而相对于从HDFS上下载数据的多对单传输比较,速度相差较大,5倍左右。

总的来说,单节点之间传输的最大速率为10MB/s,考虑到网卡为100M网卡(理论最大速率为12.5MB/s),交换机亦为100M接口,网线为5类线,猜测限制因素主要为PC和交换机网卡。

从表中可以分析出更多的数据,在这里就不一一列举。

分享到:
评论

相关推荐

    hadoop性能测试报告

    - **硬件环境**:该测试采用的是RHEL6.2操作系统,搭载2.6.32-220.el6.x86_64内核,构建了一个由多个节点组成的Hadoop集群,其中包含了TaskTracker、RegionServer和DataNode等组件。同时,测试环境中还包含Oracle ...

    Hadoop 安装文档 性能测试

    ### Hadoop 安装与性能测试综合指南 #### 一、前言 Hadoop是一款开源的大数据处理框架,主要用于分布式存储和大规模数据集的并行处理。本文将详细介绍Hadoop在Ubuntu系统上的安装过程以及初步的性能测试方法,旨在...

    集群Hadoop性能测试

    【集群Hadoop性能测试】是针对Hadoop分布式计算框架进行的一系列性能评估活动,目的是找出最佳配置以提升系统效率。测试方法主要通过shell自动化脚本来完成,包括生成配置文件、执行测试、记录时间以及恢复默认配置...

    hadoop大数据平台性能测试方案.doc

    本文档提供了一个详细的性能测试方案模板,涵盖测试方案、测试范围、测试软件硬件环境、测试进度、测试人员的分工和职责,以及测试流程的定义和描述。 性能测试的重要性 在大数据平台中,性能测试是非常重要的,...

    实验4:hadoop文件上传.docx

    Hadoop 文件上传实验 本资源主要介绍了如何使用 HDFS 进行文件上传操作,同时了解如何使用 HDFS API 进行文件上传。实验内容包括使用命令行上传文件和使用 Java API 上传文件。 Hadoop 文件上传实验主要涉及到以下...

    hadoop2.7.3+hive1.2.1+spark2.0.1性能测试

    ### Hadoop 2.7.3 + Hive 1.2.1 + Spark 2.0.1 性能测试知识点 #### 一、环境搭建与配置 **1.1 主机环境配置** - **修改主机名称:** - 通过编辑`/etc/sysconfig/network`文件来更改主机名,确保其符合实际需求...

    hadoop文件上传下载

    在IT行业中,Hadoop是一个...总的来说,结合Struts2和Hadoop,你可以构建一个强大的文件管理系统,实现大规模、高性能的文件上传和下载服务。这不仅展示了Struts2的灵活性,也突显了Hadoop在大数据存储领域的强大能力。

    Hadoop分布式文件系统(HDFS)运行测试

    - **MapReduce示例**:编写一个简单的WordCount程序,测试MapReduce的运行流程,观察从数据输入到结果输出的整个过程。 #### 结论与展望 通过本次实验,不仅深入了解了HDFS和MapReduce的工作原理,还掌握了Hadoop在...

    hadoop web tomcat上传文件

    在描述中提到的"自己写的一个WEB只有上传文件功能",这可能是一个简单的MVC(Model-View-Controller)结构的应用程序,其中Controller负责处理用户的上传请求,Model则处理文件存储到Hadoop的逻辑,而View可能只是一...

    上传文件到Hadoop失败的原因分析及解决方法.pdf

    Hadoop 文件上传失败原因分析及解决方法 本文主要讨论了在 Java Web 程序中上传文件到 Hadoop HDFS 文件系统中失败的原因分析及解决方法。通过对问题的分析和解决,可以总结出以下知识点: 1. Hadoop 文件上传失败...

    HADOOP案例及测试资料

    【HADOOP案例及测试资料】是一份涵盖了Hadoop平台搭建、实例运行、源代码分析、测试问题以及基准测试的综合资料集。这份压缩包包含了多个文档,它们分别提供了不同方面的深入理解和实践指导。 首先,"Hadoop平台...

    hadoop的dll文件 hadoop.zip

    在提供的信息中,我们关注的是"Hadoop的dll文件",这是一个动态链接库(DLL)文件,通常在Windows操作系统中使用,用于存储可由多个程序共享的功能和资源。Hadoop本身是基于Java的,因此在Windows环境下运行Hadoop...

    Hadoop平台基准性能测试研究_张新玲.pdf

    Hadoop作为一个开源的大数据处理平台,在大数据领域扮演着至关重要的角色。自诞生以来,Hadoop迅速成为了大数据处理的事实标准,并且逐渐成为了软件开发团队首选的云计算平台之一。Hadoop平台具备诸多优势,例如分布...

    Win本地测试hadoop

    文件名称列表中的"WinS.java"可能是一个帮助在Windows上启动Hadoop服务的脚本或类。而"CountMapper.java"和"CountReducer.java"则分别代表了MapReduce编程模型中的两个关键部分。 MapReduce是Hadoop处理大数据的...

    hadoop人脸分析测试数据

    在大数据领域,Hadoop是一个广泛使用的开源框架,用于存储和处理海量数据。它以其分布式文件系统(HDFS)和MapReduce编程模型为核心,为大规模数据分析提供了高效、可靠的解决方案。"hadoop人脸分析测试数据"是一个...

    Hadoop课程实验和报告——Hadoop安装实验报告

    Hadoop是一个开源的大数据处理框架,由Apache基金会开发和维护。它提供了一种可靠、可扩展、可高效的方法来存储和处理大规模数据。在本实验报告中,我们将介绍Hadoop的安装和配置过程,并结合Eclipse进行项目开发。 ...

    windows安装需要的Hadoop库文件

    3. **WinUtils**:WinUtils是Hadoop在Windows上的一个辅助工具,包含了像hadoop.dll这样的库文件。这些文件需要放在Hadoop的`bin`目录下,以便Hadoop能够找到它们。在压缩包文件中,可能包含这些必要的WinUtils库...

    基于hadoop的简易云盘实现.zip

    【标题】"基于hadoop的简易云盘实现.zip"揭示了这个项目是关于利用Hadoop框架构建一个简单的云存储服务。Hadoop是一个开源的分布式计算框架,它允许处理和存储大量数据,尤其适合大数据处理场景。这个简易云盘的实现...

Global site tag (gtag.js) - Google Analytics