测试HDFS写性能

原文:sw-code

1)写测试的原理

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集群

<!-- 虚拟内存检查,默认为打开,修改为关闭-->
<property>
<description>Whether virtual memory limits will be enforced for
containers.</description>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

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操作

大数据之Hadoop集群的HDFS压力测试的更多相关文章

  1. 大数据测试之hadoop集群配置和测试

    大数据测试之hadoop集群配置和测试   一.准备(所有节点都需要做):系统:Ubuntu12.04java版本:JDK1.7SSH(ubuntu自带)三台在同一ip段的机器,设置为静态IP机器分配 ...

  2. 大数据学习——HADOOP集群搭建

    4.1 HADOOP集群搭建 4.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主 ...

  3. 大数据平台Hadoop集群搭建

    一.概念 Hadoop是由java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce.HDFS是一个分布式文件系统,类似mogilef ...

  4. Java+大数据开发——Hadoop集群环境搭建(一)

    1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有 NameNode / DataN ...

  5. 大数据中Hadoop集群搭建与配置

    前提环境是之前搭建的4台Linux虚拟机,详情参见 Linux集群搭建 该环境对应4台服务器,192.168.1.60.61.62.63,其中60为主机,其余为从机 软件版本选择: Java:JDK1 ...

  6. Java+大数据开发——Hadoop集群环境搭建(二)

    1. MAPREDUCE使用 mapreduce是hadoop中的分布式运算编程框架,只要按照其编程规范,只需要编写少量的业务逻辑代码即可实现一个强大的海量数据并发处理程序 2. Demo开发--wo ...

  7. 大数据之hadoop集群安全模式

    集群安全模式1.概述(1)NameNode启动 NameNode启动时,首先将镜像文件(Fsimage)载入内存,并执行编辑日志(Edits)中的各项操作.-旦在内存中成功建立文件系统元数据的影像,则 ...

  8. 大数据学习——hadoop集群搭建2.X

    1.准备Linux环境 1.0先将虚拟机的网络模式选为NAT 1.1修改主机名 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=itcast ### ...

  9. CDH构建大数据平台-配置集群的Kerberos认证安全

     CDH构建大数据平台-配置集群的Kerberos认证安全 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 当平台用户使用量少的时候我们可能不会在一集群安全功能的缺失,因为用户少,团 ...

  10. 朝花夕拾之--大数据平台CDH集群离线搭建

    body { border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto; } body .markdown-body ...

随机推荐

  1. 深入理解 Spring IoC 和 DI:掌握控制反转和依赖注入的精髓

    在本文中,我们将介绍 IoC(控制反转)和 DI(依赖注入)的概念,以及如何在 Spring 框架中实现它们. 什么是控制反转? 控制反转是软件工程中的一个原则,它将对象或程序的某些部分的控制权转移给 ...

  2. .NET Aspire预览5版本 发布

    2024年4月11日发布了.NET Aspire预览5版本,这个版本引入了对AWS的支持,并对Azure功能进行了改进.重点内容包括拆分Aspire.Hosting和Aspire.Hosting.Az ...

  3. k8s 深入篇———— 守护容器[九]

    前言 守护容器,也叫做deamonset, 只做整理 正文 顾名思义,DaemonSet 的主要作用,是让你在 Kubernetes 集群里,运行一个 Daemon Pod. 所以,这个 Pod 有如 ...

  4. react native 使用typescript

    前言 TypeScript作为JavaScript的一个富类型扩展语言,深受代码风格严谨的前端开发者欢迎.但在react-native下,因为packager的配置困难,使用TypeScript一直是 ...

  5. 重新整理数据结构与算法(c#)—— 二叉树排序树补删除节点[二十二]

    前言 续前一章. 正文 删除节点规则: 1.假如删除的是叶子节点,让他的父节点,断开和它的联系. 2.如果删除节点右左子树或者右子树的话,那么应该这样. 如果删除节点是它的父节点的左节点,而删除节点有 ...

  6. 我用这10招,能减少了80%的BUG

    前言 对于大部分程序员来说,主要的工作时间是在开发和修复BUG. 有可能修改了一个BUG,会导致几个新BUG的产生,不断循环. 那么,有没有办法能够减少BUG,保证代码质量,提升工作效率? 答案是肯定 ...

  7. vue 商品sku,笛卡尔算法,商品添加。动态生成table,table添加值后 再生成的table 不改变table之前输入的值

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 面向云时代的龙蜥操作系统,是 CentOS 替代的最佳选择

    简介: 龙蜥致力于打造"芯""系"同频.云化创新.多快好省.安稳易用的操作系统产品! 2022 开放原子全球开源峰会 OpenAnolis 分论坛上,阿里云智能 ...

  9. JDBC 在性能测试中的应用

    简介: 我们能否绕开 http 协议,直接测试数据库的性能?是否觉得从数据库中导出 CSV 文件来构造压测数据很麻烦?怎样在压测结束后做数据清理?能不能通过数据库中的插入(删除)记录对压测请求做断言? ...

  10. 【全观测系列】Elasticsearch应用性能监控最佳实践

    ​简介:本文介绍了应用性能监控的应用价值以及解决方案等. 1.什么是全观测? 要了解全观测,我们先看看传统运维存在哪些问题. 数据孤岛,分散在不同部门,分析排查故障困难: 多个厂商的多种工具,无法自动 ...