一、数据规模
二、集群处理数据的吞吐量
2.1 hdfs的读写测试
Hadoop自带一个测试用的jar包,可以运行它来得知集群处理数据的性能如何
hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MB
结果如下
吞吐量大约为 10m/s ,一个小时大概能写36g左右的数据,能够满足项目需求
优化:
可以尝试从硬件方面升级(磁盘IO,网络IO)
集群扩容
2.2Kafka测试
2.2.1生产者压力测试
bin/kafka-producer-perf-test.sh --topic test --record-size 100 --num-records 100000 --throughput -1 --producer-props bootstrap.servers=hadoop102:9092,hadoop103:9092,hadoop104:9092
说明:
record-size是一条信息有多大,单位是字节。
num-records是总共发送多少条信息。
throughput 是每秒多少条信息,设成-1,表示不限流,可测出生产者最大吞吐量。
测试结果示例
100000 records sent, 59665.871122 records/sec (5.69 MB/sec), 463.76 ms avg latency, 626.00 ms max latency, 519 ms 50th, 608 ms 95th, 622 ms 99th, 626 ms 99.9th.
重点查看 吞吐量 5.69m/s 延迟 463.76 ms avg latency
优化
如果生产能力不足,可以对主题添加分区,或扩容集群,或设置kafka同时挂载多个磁盘目录,提高磁盘的IO能力!
2.2.2消费者压力测试
bin/kafka-consumer-perf-test.sh --zookeeper hadoop102:2181 --topic test --fetch-size 10000 --messages 10000000 --threads 1
参数说明:
--zookeeper 指定zookeeper的链接信息
--topic 指定topic的名称
--fetch-size 指定每次fetch的数据的大小
--messages 总共要消费的消息个数
重点查看:
MB.sec: 一秒消费多少M数据
nMsg.sec: 一秒消费多少数据
优化: 提高消费者的线程数;前提是一个主题有多个可用的分区!
在消费者端配置一些参数,例如offset的异步提交等!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。