CDH6.0.1环境Hadoop集群性能测试

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

系统环境台数CPU内存硬盘
Centos7.3CDH6.0.13台3264G16T

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

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

 

磁盘I/O


读测试

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

yum install hdparm

hdparm -t /dev/sdd

三次测试结果:
/dev/sdd:
 Timing buffered disk reads: 618 MB in  3.00 seconds = 205.96 MB/sec
 Timing buffered disk reads: 620 MB in  3.01 seconds = 206.32 MB/sec
 Timing 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

 

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
要搭建CDH(Cloudera Distribution including Apache Hadoop)的Hadoop分布式集群,您可以按照以下步骤进行操作: 1. 硬件准备:选择适合您需求的硬件,包括Master节点和Worker节点。Master节点通常包含NameNode、ResourceManager和其他管理组件,而Worker节点包含DataNode和NodeManager。 2. 操作系统准备:确保所有节点都安装了支持CDH的操作系统,如CentOS、Red Hat Enterprise Linux等,并进行必要的系统配置。 3. 安装CDH:下载CDH的安装包,根据官方文档的指引进行安装。您可以选择使用Cloudera Manager进行自动化安装,或者手动安装CDH的各个组件。 4. 配置集群:使用Cloudera Manager或手动配置各个组件的配置文件,包括HDFS、YARN、Hive、HBase等。确保配置正确,并进行必要的优化和调整。 5. 启动集群:启动各个组件,确保它们能够正常启动并工作。 6. 集群测试:使用CDH提供的工具和命令行工具,如hdfs dfs命令、yarn命令等,对集群进行测试和验证。确保Hadoop集群能够正确运行和处理任务。 7. 高可用和容错:根据需求,配置Hadoop的高可用和容错功能,如配置多个NameNode实现HDFS的冗余和故障转移,配置ResourceManager的容错等。 8. 安全配置:根据需求,配置Hadoop的安全功能,如Kerberos认证、SSL加密等,以保护集群的安全性。 以上是搭建CDH Hadoop分布式集群的一般步骤,具体操作细节可以参考Cloudera官方文档或其他相关资源。请注意,这只是一个概述,实际操作可能会有所不同,具体取决于您的环境和需求。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

訾零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值