本次主要是对新集群的性能测试,测试环境:

系统 环境 台数 CPU 内存 硬盘
Centos7.3 CDH6.0.1 3台 32 64G 16T

Hadoop自带的测试工具:Hadoop基准测试

首先,对服务器做一下测试,主要是磁盘I/O和网络I/O。

磁盘I/O


读测试

hdparm 用于查看硬盘的相关信息或对硬盘进行测速、优化、修改硬盘相关参数设定。这里只用作磁盘读测试。

yum install hdparmhdparm -t /dev/sdd三次测试结果:
/dev/sdd:Timing buffered disk reads: 618 MB in  3.00 seconds = 205.96 MB/secTiming buffered disk reads: 620 MB in  3.01 seconds = 206.32 MB/secTiming buffered disk reads: 620 MB in  3.01 seconds = 206.30 MB/sec说明:
3秒读取了618M磁盘,读速度约205.96M每秒

写测试

dd 这里使用 time + dd 简单测试写速度,不要求很精确,重点是Hadoop集群的测试。

查看内存缓存情况
free -m清除缓存
sync; echo 3 > /proc/sys/vm/drop_caches查block size
blockdev --getbsz /dev/sda写测试
echo 3 > /proc/sys/vm/drop_caches; time dd if=/dev/zero of=/testdd bs=4k count=100000三次测试结果:
记录了100000+0 的读入
记录了100000+0 的写出
409600000 bytes (410 MB) copied, 2.39185 s, 171 MB/s
409600000 bytes (410 MB) copied, 2.34307 s, 175 MB/s
409600000 bytes (410 MB) copied, 2.44128 s, 168 MB/s

网络带宽


yum -y install iperf3服务端
iperf3 -s客户端
iperf3 -c serverip[ 4]  0.00-10.00 sec 1.10 GBytes 943 Mbits/sec  0  sender
[ 4]  0.00-10.00 sec 1.10 GBytes 941 Mbits/sec     receiver说明
千兆网卡,网卡带宽速率941Mbits/sec左右

集群测试

使用Hadoop自带的基准测试工具包进行集群性能测试


1. TestDFSIO

1. 测试HDFS写性能

测试内容:向HDFS集群写20、50个128M的文件

sudo -uhdfs hadoop jar \
/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar \
TestDFSIO \
-write \
-nrFiles 20 \
-size 128MB \
-resFile /tmp/TestDFSIO_results.log

注意:因为是切换hdfs用户在Hadoop上运行,生成本地日志的路径可以不指定,但是得在hdfs用户有写的权径路下运行,生成的日志也在运行路径下,否则需要指定路径。

本地保存的结果

cat /tmp/TestDFSIO_results.log

测试结果

说明:

Throughput mb/sec 每个 map task 的平均吞吐量,Average IO rate mb/sec 每个文件的平均 IO 率。

多少个文件就会有多少MapTask,集群并发吞吐量和IO率为 * MapTask个数。

10

20

100

2. 测试HDFS读性能

测试内容:读取HDFS集群10、20、100个128M的文件

sudo -uhdfs hadoop jar \
/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar \
TestDFSIO \
-read \
-nrFiles 100 \
-size 128MB \
-resFile /tmp/TestDFSIO_results.log

测试结果

10

20

100

3. 清除测试数据

查看测试数据

数据默认保存在HDFS下,/benchmarks

hadoop fs -du -h /benchmarks/TestDFSIO

第一列是文件大小,第二列是HDFS默认备份数为3份的总大小。

清除数据 

sudo -uhdfs hadoop jar \
/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar \
TestDFSIO -clean

2.nnbench

测试NameNode的负载

它会生成很多与HDFS相关的请求,给NameNode施加较大的压力。这个测试能在HDFS上模拟创建、读取、重命名和删除文件等操作。

测试使用30个mapper和3个reducer来创建10000个文件

sudo -uhdfs hadoop jar \
/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar nnbench \
-operation create_write \
-maps 30 \
-reduces 3 \
-blockSize 1 \
-bytesToWrite 0 \
-numberOfFiles 10000 \
-replicationFactorPerFile 3 \
-readFileAfterOpen true \
-baseDir /benchmarks/NNBench-`hostname`
cat /tmp/NNBench_results.log

12个mapper和2个reducer来创建1000个文件

30个mapper和3个reducer来创建10000个文件

100个mapper和50个reducer来创建10000个文件

清除测试数据

sudo -uhdfs hadoop fs -rm -r /benchmarks/NNBench-cdh-master

3. mrbench

mrbench多次重复执行一个小作业,检查在机群上小作业的运行是否可重复以及运行是否高效。

测试运行一个作业50次

sudo -uhdfs hadoop jar \
/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar \
mrbench \
-numRuns 50 \
-maps 2 \
-reduces 1 \
-inputLines 10 \
-inputType descending

清除数据

sudo -uhdfs hadoop fs -rm -r /benchmarks/MRBench

4. Terasort

Terasort是测试Hadoop的一个有效的排序程序。

通过Hadoop自带的Terasort排序程序,测试不同的Map任务和Reduce任务数量,对Hadoop性能的影响。 实验数据由程序中的teragen程序生成。

一个TeraSort测试需要按三步:
1. TeraGen生成随机数据
2. TeraSort对数据排序
3. TeraValidate来验证TeraSort输出的数据是否有序,如果检测到问题,将乱序的key输出到目录

 

1. TeraGen生成随机数

生成随机数,Teragen每行数据大小是100B,1TB行数=1024*1024*1024*1024/100=10995116277。maptask个数默认2个,自定义为120个。将结果输出到目录 /tmp/examples/terasort-intput。

sudo -uhdfs hadoop jar \
/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \
teragen -Dmapred.map.tasks=120 10995116277 \
/tmp/examples/terasort-input

2. TeraSort排序

默认reduce个数1个,自定义为90个。读取/tmp/examples/terasort-intput,将结果输出到目录 /tmp/examples/terasort-output。

sudo -uhdfs hadoop jar \
/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \
terasort -Dmapred.reduce.tasks=90 \
/tmp/examples/terasort-input /tmp/examples/terasort-output

3.TeraValidate验证

如果检测到问题,将乱序的key输出到目录/tmp/examples/terasort-validate

sudo -uhdfs hadoop jar \
/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \
teravalidate /tmp/examples/terasort-output /tmp/examples/terasort-validate

5. sort

排序检测MR

1. randomWriter产生随机数,每个节点运行10个Map任务,每个Map产生大约1G大小的二进制随机数

sudo -uhdfs hadoop jar \
/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \
randomwriter /tmp/examples/random-data

2. sort排序

sudo -uhdfs hadoop jar \
/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \
sort /tmp/examples/random-data /tmp/examples/sorted-data

3. testmapredsort验证数据是否真正排好序了

sudo -uhdfs hadoop jar \
/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \
testmapredsort \
-sortInput /tmp/examples/random-data \
-sortOutput /tmp/examples/sorted-data

CDH6.0.1环境Hadoop集群性能测试相关推荐

  1. Hadoop集群性能测试

    前言 测试方法 临时的一个小测试,主要目的是测试一下集群的IO.现从两方面进行测试:系统级别和集群级别. 集群环境 10台物理机,64G内存,2T硬盘. cdh5.x 工具 测试过程中使用到的工具. ...

  2. centos7公司内网环境搭建集群性能测试环境(ip+域名部署)

    1.原因 一直以来,都是买云端的服务器,用来做测试服务器.这种方式用来测试功能是没有问题.但如果想搭集群的环境来测试的话,这种买云端的服务器就太费钱了.所以我们基于省钱的角度,在某宝上买了一台二手的服 ...

  3. CentOS7.0基于hadoop集群安装配置Hive

    前言 安装Apache Hive前提是要先安装hadoop集群,并且hive只需要在hadoop的namenode节点集群里安装即可(需要再有的namenode上安装),可以不在datanode节点的 ...

  4. 基于OSS存储搭建Hadoop集群

    简介 本文以Ubuntu操作系统为例,介绍基于Aliyun OSS的hadoop-3.0.0-beta1的集群环境搭建过程,示例的集群环境包括1个master和2个slave节点(slave1和sla ...

  5. hadoop(05)、使用Eclipse连接远程Hadoop集群

    2019独角兽企业重金招聘Python工程师标准>>> 在前面的文中我们分别搭建了单机和集群的Hadoop环境,今天我们将实践使用Eclispe开发工具安装 hadoop的开发插件, ...

  6. Ambari在离线环境中安装Hadoop集群

    2019独角兽企业重金招聘Python工程师标准>>> http://www.hackbase.com/article-973-1.html (WJW)Ambari在离线环境中安装H ...

  7. hadoop集群环境搭建准备工作

    一定要注意hadoop和linux系统的位数一定要相同,就是说如果hadoop是32位的,linux系统也一定要安装32位的. 准备工作: 1 首先在VMware中建立6台虚拟机(配置默认即可).这是 ...

  8. Hadoop集群_Eclipse开发环境设置

    1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0 ...

  9. hadoop集群环境搭建

    参考文章: https://www.linuxidc.com/Linux/2016-02/128149.htm https://blog.csdn.net/circyo/article/details ...

最新文章

  1. Java进阶篇(一)——接口、继承与多态
  2. 三级下拉框连动的数据库版
  3. 2021-02-04 Halcon初学者知识【12】 如何配置VC++和Halcon环境
  4. C语言的本质(3)——整数的本质与运算
  5. NPL之如何使用Glove--词向量转化
  6. 100+诡异的数据集,20万Eclipse Bug、死囚遗言等
  7. 称重仪表显示ol怎么解决_电脑显示器无信号怎么解决呢?
  8. logisim软件学习
  9. 如何快速深入理解监控知识?
  10. 菜鸟学R语言(组间多重比较)
  11. WIN7护眼颜色设置
  12. GIS数据网站分享(长期更新)
  13. 如何在Word文档中加入水印
  14. 9.3. debug ip igrp
  15. 亳州的来历(地名的由来)
  16. E. Stupid Submissions(思维)
  17. C++设计模式(2)——面向对象设计原则
  18. 教师资格证面试需要准备什么?
  19. 【Unity 3D】常见API的讲解以及在C#脚本中的执行(附源码)
  20. CAXA电子图版2016破解补丁

热门文章

  1. Trie(前缀树,prefix tree)
  2. 预测不了世界杯比分,就预测百威啤酒销量,送数据竞赛冠军笔记
  3. 什么是ADB,ADB有什么作用?
  4. 那门用Python讲授的程序设计课程能带给学生什么
  5. 阅读 | 皮囊与灵魂
  6. 阿拉伯数字 转换 中文大写
  7. 微信吸粉秘籍之人气论坛吸粉方法
  8. 微信联合登录全攻略,早期测试用户的详尽经验总结!
  9. 三菱PLC FB库新建和调用-(Gx Work2版本)
  10. 【WPF】后台切换前台图片