大数据之Hadoop集群的HDFS压力测试

测试HDFS写性能

原文:sw-code
1)写测试的原理

大数据之Hadoop集群的HDFS压力测试

2)测试内容:向HDFS集群写10个128MB的文件(3个机器每个4核,2 * 4 = 8 < 10 < 3 * 4 =12)

[hadoop@hadoop103 ~]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MB

2022-06-17 15:53:28,086 INFO fs.TestDFSIO: ----- TestDFSIO ----- : write
2022-06-17 15:53:28,086 INFO fs.TestDFSIO:             Date & time: Fri Jun 17 15:53:28 CST 2022
2022-06-17 15:53:28,086 INFO fs.TestDFSIO:         Number of files: 10
2022-06-17 15:53:28,086 INFO fs.TestDFSIO:  Total MBytes processed: 1280
2022-06-17 15:53:28,086 INFO fs.TestDFSIO:       Throughput mb/sec: 1.66
2022-06-17 15:53:28,086 INFO fs.TestDFSIO:  Average IO rate mb/sec: 1.71
2022-06-17 15:53:28,086 INFO fs.TestDFSIO:   IO rate std deviation: 0.3
2022-06-17 15:53:28,086 INFO fs.TestDFSIO:      Test exec time sec: 153.5
2022-06-17 15:53:28,086 INFO fs.TestDFSIO:

注意: nrFiles n为生成mapTask的数量,生产环境一般可通过 hadoop103:8088查看CPU核数,设置为(CPU核数-1)

  • Number of files:生成mapTas数量,一般是集群中(CPU核数-1)。
  • Total MBytes processed:总文件大小
  • Throughput mb/sec:单个mapTask的吞吐量

​ 计算方式:处理的总文件大小/每一个mapTask写数据的时间累加和

​ 整个集群吞吐量:生成mapTask数量 * 单个mapTask的吞吐量

  • Average IO rate mb/sec:平均mapTask的吞吐量

​ 计算方式:每个mapTask处理文件大小/每一个mapTask写数据的时间全部相加除以task数量

  • IO rate std deviation:方差、放映各个mapTask处理的差值,越小越均衡

如果测试过程中,出现异常,尝试关闭虚拟内存检测

yarn-site.xml中设置虚拟内存检测为false,然后重启 Yarn集群


    Whether virtual memory limits will be enforced for
        containers.

    yarn.nodemanager.vmem-check-enabled
    false

3)测试结果分析

由于副本1就在本地(hadoop4),所以该副本不参与测试(如果客户端不在集群节点,那就所有副本都参与计算)

一共参与测试的文件:10个文件 * 2个副本 = 20个

压测后的速度:1.66

实测速度:1.66M/s * 20个文件 ≈ 33.2M/s

三台服务器的带宽:3 * (100Mbps / 8bit) ≈ 37.5M/s

所有网络资源都已经用满。

如果实测速度远小于网络,并且实测速度不能满足工作需求,可以考虑采用固态硬盘或者增加磁盘个数。

测试HDFS读性能

1)测试内容:读取HDFS集群10个128M的文件

[hadoop@hadoop102 ~]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -read -nrFiles 10 -fileSize 128MB

2022-06-17 16:33:04,291 INFO fs.TestDFSIO: ----- TestDFSIO ----- : read
2022-06-17 16:33:04,292 INFO fs.TestDFSIO:             Date & time: Fri Jun 17 16:33:04 CST 2022
2022-06-17 16:33:04,292 INFO fs.TestDFSIO:         Number of files: 10
2022-06-17 16:33:04,292 INFO fs.TestDFSIO:  Total MBytes processed: 1280
2022-06-17 16:33:04,292 INFO fs.TestDFSIO:       Throughput mb/sec: 49.1
2022-06-17 16:33:04,292 INFO fs.TestDFSIO:  Average IO rate mb/sec: 98.43
2022-06-17 16:33:04,292 INFO fs.TestDFSIO:   IO rate std deviation: 78.64
2022-06-17 16:33:04,292 INFO fs.TestDFSIO:      Test exec time sec: 44.96

下篇文章:大数据之Hadoop集群中Yarn常用命令
相关文章:
大数据之Hadoop集群中Yarn常用命令
大数据之Hadoop集群中MapReduce的Join操作

Original: https://www.cnblogs.com/sw-code/p/16387034.html
Author: sw-code
Title: 大数据之Hadoop集群的HDFS压力测试

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585574/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 了解Redis这个核心数据类型

    string 字符串 tring 类型是二进制安全的,即 string&#xA0;中可以包含任何数据。 Redis 中的普通 string 采用 raw encoding …

    Linux 2023年5月28日
    098
  • Linux系统查看磁盘可用空间的5个命令

    大家好,我是良许。 工作中,经常会遇到磁盘爆满的情况,尤其是一台服务器运行了 N 年之后,里面会充满各种各样垃圾文件,比如:编译产生的中间文件、打包的镜像文件、日志文件,等等。 别…

    Linux 2023年5月27日
    0127
  • shell相关知识1

    组命令,就是将多个命令划分为一组,或者看成一个整体。 用法区别 Shell 组命令的写法有两种: { command1; command2;. . .; }(command1; c…

    Linux 2023年5月28日
    086
  • Seata-初体验以及避坑

    Seata是什么 这里引用官方解释 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 …

    Linux 2023年6月7日
    0101
  • docker-compose安装,yml文件配置

    1、离线安装 https://github.com/docker/compose/releases 移动文件 mv docker-compose-linux-x86_64 /usr…

    Linux 2023年6月14日
    089
  • N68第二周作业

    完成作业:完成一个shell脚本,脚本的作用。1. 运行脚本可以显示出本机的ip地址2. 如果ip地址中有3这个数字,那么就打印出当前的系统时间3. 如果ip地址中不含3这个数字,…

    Linux 2023年6月7日
    0152
  • docker安装详细过程

    ubuntu安装docker 我这里用mobaxterm远程连接安装的,如何远程连接在上一篇文章 1、解压tar -zxvf docker-19.03.5.tgz 拷贝文件至bin…

    Linux 2023年6月7日
    0111
  • go操作redis

    package main import ( "fmt" "github.com/gomodule/redigo/redis" ) func …

    Linux 2023年5月28日
    079
  • 一文聊透 Netty IO 事件的编排利器 pipeline | 详解所有 IO 事件的触发时机以及传播路径

    欢迎关注公众号:bin的技术小屋,本文图片加载不出来的话可查看公众号原文 本系列Netty源码解析文章基于 4.1.56.Final版本 1. 前文回顾 在前边的系列文章中,笔者为…

    Linux 2023年6月6日
    097
  • echarts属性的设置大全(完整大全)

    1. &#x5168;&#x56FE;&#x9ED8;&#x8BA4;&#x80CC;&#x666F;&#xA0; &amp…

    Linux 2023年6月13日
    069
  • 如何在 pyqt 中实现桌面歌词

    前言 酷狗、网抑云和 QQ 音乐都有桌面歌词功能,这篇博客也将使用 pyqt 实现桌面歌词功能,效果如下图所示: 代码实现 桌面歌词部件 LyricWidget 在 paintEv…

    Linux 2023年6月7日
    0109
  • 同一台电脑生成多份ssh私钥和公钥,映射多个GitHub账号

    当我们使用 Git 进行代码版本控制时,经常出现一台电脑需要连接多个Git 账号的情况,此时需要在一台电脑上生成多份 ssh 私钥和密钥,同时映射多个 Git 账号;这里我们需要同…

    Linux 2023年6月14日
    093
  • zabbix监控配置项配置

    1.手动添加监控项 2. 使用模板添加监控项 3.0 邮件告警 创建主机并加入主机组 1.手动添加监控项 即获取数据的监控指标增加用户,修改用户,删除用户etc/passwd文件都…

    Linux 2023年6月7日
    0135
  • CentOS7 源码安装Nginx及Nginx基本管理设置

    CentOS7 安装 参考文档 CentOS7最小安装后初始化安装工具 1:yum install net-tools 参考文档 2:源码安装wget 参考文档 或者执行 yum …

    Linux 2023年5月27日
    0118
  • Python中使用 for 循环来拿遍历 List 的值

    常规版本 简单的 for 循环遍历 x_n = ["x1","x2","x3"] for x in x_n: print…

    Linux 2023年6月7日
    086
  • 实验二 电子传输系统安全-进展2

    一、利用java程序实现文件加密 我们的文件在计算机中都是以二进制的形式存储,而Java中IO流(字节流和字符流)可以实现对底层文件的读取,故利用Java的IO流进行文件拷贝时,可…

    Linux 2023年6月8日
    0108
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球