硬件环境:
实验室的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.3,IEEE802.3u,IEEE802.3x,IEEE802.1X
网络协议:TCP/IP,DHCP,ICMP,NAT,PPPoE,SNTP
传输速率:10/100Mbps
端口结构:非模块化
广域网接口:1个
局域网接口:16个
接口介质:10Base-T:3类或3类以上UTP
100Base-TX:5类UTP
软件环境:
3台机器上都装着Fedorarelease15(Lovelock)32bit,hadoop1.0.0(,集群设置副本数量Replication=2。集群上启动了map-reduce,HDFS和SSH服务。没有运行任何其它job)
测试过程:
1.首先将hdfs的上传速度和scp的速度做对比,在集群中找了一个节点Slave1,向hdfsput一个643MB的文件(hdfs文件块64MB,2个节点,每个节点大约会有5个文件块(共11个)):
[hadoop@Slave1Downloads]$timehadoopfs-put2008.zip/usr/hadoop
real1m6.896s
user0m7.197s
sys0m2.256s
用了66.896秒,平均速度为9.6M/s.
2.再看看下载的速度,将本地的文件删除,从hdfs上get一个:
[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,且只有Slave1和Slave2两个数据节点,因此在每个节点上都有一份完整的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
|
分析1和6,文件个数对文件传输效率的影响是十分巨大地,不管是在DataNodes内或DataNodes外,对于本实验的两个文件来说,文件上传效率相差8倍左右。
分析3和4,由于数据的本地化,Slave1上保存了文件的所有数据,因此对于少量大文件来说,传输速率和本地磁盘复制的速率相差不大。而随着大量小文件的增加,本地磁盘速率影响较小,而HDFS传输的速率搜到较大影响。本例中相差4倍多。
分析5和6,datanodes以外的节点上传文件为单点输出,而相对于从HDFS上下载数据的多对单传输比较,速度相差较大,5倍左右。
总的来说,单节点之间传输的最大速率为10MB/s,考虑到网卡为100M网卡(理论最大速率为12.5MB/s),交换机亦为100M接口,网线为5类线,猜测限制因素主要为PC和交换机网卡。
从表中可以分析出更多的数据,在这里就不一一列举。
分享到:
相关推荐
hadoop性能测试报告
Hadoop安装文档,亲自测试过的,也有一部分性能测试
基于hadoop上的基本测试,很好的资源哦
hadoop2.7.3+hive1.2.1+spark2.0.1性能测试
Hadoop平台基准性能测试工具的设计与实现
基于伪分布式的文件上传,里面有java代码上传文件!
Hadoop分布式文件系统(HDFS)运行测试
本文档为xxx大数据平台测试方案模板,包含测试方案、测试范围,测试的软件硬件环境、测试进度、测试人员的分工和职责以及测试流程进行详细的定义和整体的描述。
利用struts2上传文件到hdfs,并从hdfs下载文件。程序运行前提是搭建好hadoop环境。
hadoop的dll文件 hadoop.zip
hadoop web tomcat上传文件,自己写的一个WEB只有上传文件功能,hadoop.rar是已经发布的解压直接放到TOMCAT WEBAPPS下就可以运行
本文从 Hadoop 分布式 文件系统架构的建模入手,通过对模型各组成部分进行分析,并将其与传统的分布式文件系统进 行比较,总结出 Hadoop 分布式文件系统具有的海量、高可扩展性、高可靠性、高性能等面向云计算 ...
Hadoop云计算平台在高校实验室教学环境中的实现,比较有用的文章
hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件hadoop配置文件
Hadoop集群测试报告
上传文件到Hadoop失败的原因分析及解决方法.pdf
以词频统计为例,通过在单机环境下一些典型文件测试集的实验,对比了不同文件输入格式对Hadoop处理小文件性能的差异。从Hadoop的工作流程和原理上解释了出现此性能差异的原因。通过分析得出多个小文件整合为一个数据...
YARN HA 测试Job YARN HA 测试Job 序号 任务名称 任务一 准备MapReduce输入文件 任务二 将输入文件上传到HDFS 任务三 运行MapReduce程序测试Job 任务一 准备MapReduce输入文件 在master主节点,使用 root 用户登录,...
Hadoop平台基准性能测试研究
部署Hadoop3.0高性能集群,Hadoop完全分布式模式: Hadoop的守护进程分别运行在由多个主机搭建的集群上,不同 节点担任不同的角色,在实际工作应用开发中,通常使用该模式构建企业级Hadoop系统。 在Hadoop环境中,所有...