`
hmilyzhangl
  • 浏览: 45004 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Hadoop 集群的基准测试

阅读更多

(转)测试环境:

12 个节点,每个节点的物理机配置为双核 CPU ,主频 2.60Hz,

内存 3G ,硬盘 250G ,网络带宽 100Mbps 以太网,虚拟机 VMware workstation 7.1.0 build-261024 ,平台 RHEL5.5 ,内核版本 2.6.18 ,,虚拟机配置为单核 CPU 1G 内存, Hadoop 版本为 0.20.2, HDFS 中每个文件块有 3 个备份。

测试目的:

掌握 Hadoop 集群的安装测试,总结有关 Hadoop 集群性能的规律和影响因素,针对相关配置做出性能优化的解决方案。

测试原理:

在物理机上安装 VMware 虚拟机,并在虚拟机上安装 RHEL5.5 ,下载并安装 Hadoop0.20.2 ,按照相关属性配置有关文件。更详细的集群搭建过程参照文档。

Hadoop 基准测试,在没有任务运行的集群上进行测试,基准测试主要使用 Hadoop 自带的一些基准测试程序。具体运行程序的方法参照相关文档。

1.      TestDFSIO 基准测试 HDFS

TestDFSIO 用来测试 HDFS I/O 性能,它通过使用 mapreduce 作业来完成测试作为并行读写文件的便捷方法,每个文件的读写都在单独的 map 任务中进行,并且 map 的输出可以用来收集统计刚处理过的文件,这个统计数据在 reduce 中累积起来得到一个汇总。

测试命令为:

% bin/hadoop  jar $HADOOP_INSTALL/hadoop-0.20.2-test.jar TestDFSIO –write

-nrFile 10

-fileSize 500

运行这个命令可进行写入基准测试,在运行的最后,结果被写入控制台并记录到本地文件 TestDFSIO_results.log ,文件默认写在、 benchmarks/TestDFSIO 目录下(可以通过设置 test.build.data 系统属性来改变),一个叫 io_data 的目录下。

使用 -read 选项运行可以进行读取基准测试。但注意,读取这些文件必须已经存在(由上一步的 TestDFSIO –write 写入):

% bin/hadoop  jar $HADOOP_INSTALL/hadoop-0.20.2-test.jar TestDFSIO –write

-nrFile 10

-fileSize 500

控制测试的变量,比如文件大小,集群节点数目,每个物理机上运行的虚拟机数量等。最后,由控制台输出和相关文件的记录进行分析,总结。

在对HDFS进行基准测试后,要通过参数 –clean HDFS 上删除所有生成的文件。

% bin/hadoop   jar $HADOOP_INSTALL/hadoop-0.20.2-test.jar TestDFSIO   –clean

2.      wordcount 测试 MapReduce 的性能

Wordcount Hadoop 自带的一个测试运行的小程序,它的输入是一个文本文件,输出是一个文本文件,每一行包含一个单词和它在输入文本中出现的频率,用制表符隔开。

运行命令如下:

%cat test.txt > /tmp/test.txt

%bin/hadoop dfs –mkdir test-in

%bin/hadoop dfs –copyFromLocal /tmp/test.txt test-in

% bin/hadoop jar $HADOOP_INSTALL/hadoop-0.20.2-example.jar

Wordcount test-in test-out

控制测试中的相关变量,比如文件大小,集群节点数目,每个物理机上运行的虚拟机数量等,重复运行几次,查看每次控制台中任务开始的时间和结束的时间,做记录和分析。

测试步骤:

1.           首先控制节点数量和每个物理机上的虚拟机数量,因为这两个变量在我们的测试中结果影响是一样的,所以归为一类,我们共有 3 台物理机,每台上面安装了 4 台虚拟机,共 12 个节点,我们控制每一台物理机上运行的虚拟机数量从 1 增加到 4 ,每次读写控制为 10 个文件,每个文件 5MB ,分别记录 TestDfsIO_results.log 文件记录的结果。也按这个控制方法运行一个 2KB 的文本文件作为输入的 wordcount 程序,记录程序运行时间。

我们设定不同规模的集群为 Vcloud

节点数

3

6

9

12

集群名称

Vcloud1

Vcloud2

Vcloud3

Vcloud4

 

2.           12 个节点全部运行起来,控制每次读写文件的大小,从 1MB 6MB ,分别记录 TestDfsIO_results.log 文件记录的结果。同这个规律一样的运行输入文件分别为 2KB 4KB 6KB 8KB wordcount 程序,并记录运行时间。

结果分析:

1 控制集群规模的 IO 读写测试

 

 

1 纵轴为运行写测试平均时间,横轴为不同规模的集群

 

 

2 纵轴为运行读测试平均时间,横轴为不同规模的集群。

 

2 控制读写文件大小测试 IO 读写性能

 

3 ,纵轴为平均写运行平均速度,横轴为文件大小

 

4 纵轴为平均读运行平均速度,横轴为文件大小

3 运行 wordcount 测试 MapReduce 性能

 

5 ,纵轴为一个 2KB 输入的文件平均运行时间,横轴为集群规模

 

6 纵轴为每个输入的 wordcount 运行平均时间,横轴为输入文件大小

结论和推断

对整体的 IO 读写测试和 MapReduce 的性能测试,由数据和图像分析可知总体的趋势为平均运行时间先减小在增大。

1.      对于控制集群规模的 IO 读 写可以明显看到读取数据的速度要比写入数据的速度快得大得多。对于相同的读写量随着集群规模的增长处理运行时间有减小的趋势,而后出现的随集群规模增大而 出现的增长主要是因为我们在测试中由于硬件配置和数量的限制,在每台物理机上运行更多的虚拟机时(以三台为界),虚拟机的性能受物理机性能(比如网络带 宽,内存大小等)限制,出现整体性能下降,导致读写运行时间增大。

2.      控制文件大小的 IO 读写测试

对于控制文件大小的测试中由图像和数据可知一开始随着文件大小的增加,出现了运行处理时间的减小,这说明 HDFS 很适合于处理较大规模的读写数据,但随着文件大小的增大相应的出现了平均运行时间的增大,这是由集群节点数目、硬件配置等原因出现的必然结果。但总体看来还是读取速度大于写入速度。

3.      控制集群规模的 MapReduce 性能测试

对于控制集群规模的 MapReduce 性能测试,整体趋势和控制集群规模的 IO 读写测试的趋势一致,影响原因也大致相同。

4.      控制输入文件大小的 MapReduce 性能测试

对于控制文件大小的 MapReduce 性能测试中数据和结果的分析可知,和控制文件大小的 IO 读写测试发展趋势基本相同,影响原因也基本一致。

5.      测试结果与华中科技大学的测试结果对比

相对于华科的测试,我们有以下几点不同 1. 我们没有进行物理机集群的测试; 2. 我们两个学校的硬件有很大不同,我们硬件的限制过早的出现了性能的限制瓶颈,集群规模也和华科有相对的差距。

6.      总体总结

这 次测试的结果是客观测试的结果,由其中的方法可以得到对于一个合理的虚拟集群,物理机上运行的虚拟机数量存在一个值,当同台物理机上虚拟机数量小于这个指 的时候,可假设各虚拟机之间的性能是平行互不干扰并且处于最优状态的。同台物理机上的虚拟机数量超过这个值虚拟机之间将互相影响,出现所有虚拟机的性能下 降,而且由多启动的虚拟机来增加集群规模对集群性能的提高指数远小于虚拟机整体性能下降对集群性能的降低指数,所以整体出现性能下降的情况。正是这个最佳 值将使虚拟机最大化的利用物理资源以提高计算性能。

  这次测试并未深入到 Hadoop 中的一些参数的设置对性能的影响,对于整体性能优化只对虚拟机得到有关的结论,在以后的测试中将继续探索其他的测试方法和测试角度。

分享到:
评论

相关推荐

    Hadoop-构建集群.pdf

    1 集群规范 (Cluster Specification) 2 集群的构建和安装 (Cluster Setup and Installation) 3 Hadoop 配置 ( Hadoop Configuration ) ...5 利用基准评测程序测试 Hadoop 集群 (Benchmarking a Hadoop Cluster)

    Hadoop权威指南 第二版(中文版)

     利用基准测试程序测试Hadoop集群  Hadoop基准测试程序  用户的作业  云上的Hadoop  Amazon EC2上的Hadoop 第10章 管理Hadoop  HDFS  永久性数据结构  安全模式  日志审计  工具  监控  日志  度量  ...

    Hadoop权威指南(中文版)2015上传.rar

    利用基准测试程序测试Hadoop集群 Hadoop基准测试程序 用户的作业 云上的Hadoop Amazon EC2上的Hadoop 第10章 管理Hadoop HDFS 永久性数据结构 安全模式 日志审计 工具 监控 日志 度量 Java管理扩展(JMX) 维护 日常...

    Spark-terasort:Spark Terasort基准测试

    它是对Hadoop集群的存储层(HDFS)和计算层(YARN / Spark)进行组合测试的基准。 完整的TeraSort基准测试运行包含以下三个步骤: 通过TeraGen生成输入数据。 在输入数据上运行实际的TeraSort。 通过TeraValidate...

    就医管理系统java源码-Hadoop-Cluster-in-Machine-Learning:机器学习中的Hadoop集群

    这项研究涉及数据在分布式系统架构中的分布,以及创建用于对孟加拉手写数字文本进行基准测试的机器学习模型。 经常看到,当数据量非常大时,在单台机器上工作的机器学习模型或集群会占用大量的资源和时间。 分布式...

    koonkie:用于宏基因组处理的 Hadoop 框架

    Koonkie:使用 Hadoop 处理环境序列信息的自动化软件工具 Dongjae Kim, Kishori M. Konwar, Niels W. Hanson, Steven J. Hallam 当前的下一代测序平台从环境样本中生成越来越庞大的文本数据集,必须通过各种生物...

    big_data:有关Hadoop,MapReduce,Spark,Docker的教程的集合

    演示,用于对Hadoop集群进行基准测试 面向初学者的Docker:容器世界入门 Pyspark基本演示 使用pyspark生成ngram的基本示例 编码Spark数据框列 探索Unicode类别( ) 用numpy算出多项式回归的示例 使用Faker Python...

    电力设备状态高速采样数据的云存储技术研究

    创建了1个包含20个节点(每个节点配置4核CPU)的Hadoop集群,并对集群进行了基准测试,测试结果表明所建集群适合进行大量数据的读写。以绝缘子泄漏电流数据为例,使用YCSB对所建存储系统进行了性能测试,测试结果...

    支持云计算环境的MapReduce模拟器设计 (2015年)

    然后,集群读取元件从集群中读取参数,从而创建模拟的Hadoop集群环境;最后,利用作业跟踪器跟踪模拟的作业,并利用任务跟踪器运行单个任务.所设计的模拟器从多角度研究Hadoop应用的性能,集中模拟Hadoop的映射和化简行为,...

    graphalytics-platforms-mapreducev2

    在启动基准测试之前,将Hadoop集群配置为以伪分布式或分布式模式运行。 您还必须通过在$HADOOP_CONF_DIR/mapred-site.xml设置以下属性来增加作业计数器的最大数量: mapreduce.job.counters.limit :将其设置为较大...

    CS740-final-project

    HDFSBenchmark:这是我们设计基准测试的地方,以测试 COLAB 是否可以提高吞吐量,前提是我们的读写流量相等。 Openflow-HDFS:这是附加到 Floodlight 控制器的客户端守护进程。 它在 COLAB 中完成主要工作,即收集...

    terraform-aws-emr-cluster:Terraform模块,用于在AWS上预配置Elastic MapReduce(EMR)集群

    terraform-aws-emr-集群 Terraform模块可在AWS上预配置Elastic MapReduce(EMR)集群。... 基准测试描述 基础架构安全合规 互联网安全中心,符合KUBERNETES 互联网安全中心,AWS合规 互联网安全中心,符合AZURE 支付卡

    尚gg大数据项目实战电商数仓系统开发教程.txt

    21_数仓采集_项目经验之基准测试.avi 22_数仓采集_项目经验之HDFS参数调优.avi; F" t) F) H7 W' {& L% n3 H ~7 s 23_数仓采集_Zookeeper安装.avi6 c1 v9 x4 \% K5 D. \0 M 24_数仓采集_项目经验之ZK集群启动停止脚本...

Global site tag (gtag.js) - Google Analytics