测试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. mysql迁移sqlServer和mybatisPlus下查询语句转换为SqlServer2008

    mysql数据迁移sqlServer2008 mybatisPlus下查询语句转换 一.mysql数据迁移到sqlServer2008中(包括数据结构和数据) 最近公司项目需要使用sqlServer以 ...

  2. openGauss系统函数添加指导

    openGauss 系统函数添加指导 1.函数架构简介 openGauss 内函数的可以分为两个部分: ​ 身份注册声明:openGauss 中存在一个系统表 pg_proc,这个表存放了所有函数的基 ...

  3. Prometheus之grafana(No data to show)

    一.问题现象 1.grafana添加数据源后获取不到监控数据(No data to show) 2.prometheus以下报错 二.问题原因 服务器与浏览器时间不同步的原因,服务器端配置NTP服务和 ...

  4. Python-List内部实现

    Python有很大实现的版本,像拿C语言实现的Cpython,以及在其基础上改进其解释执行变为即时编译(jit)的Pypy,还有一些其他的比如Jpython等.具体来说 其中使用c语言开发的叫做pyt ...

  5. 国内十大活跃报表 BI 产品深度点评

    目前国内市场上的报表 BI 工具琳琅满目,看起来也各有特点,这给选型工作带来了一些困扰,本文就一些较活跃的报表 BI 产品进行点评,对于不太熟悉这些产品和技术的同学,可作为参考资料. 这里选了十个产品 ...

  6. DDD领域驱动设计总结和C#代码示例

    DDD(领域驱动设计)是一种软件设计方法,它强调以业务领域为核心来驱动软件的设计和开发. DDD 的设计初衷是为了解决复杂业务领域的设计和开发问题,它提供了一套丰富的概念和模式,帮助开发者更好地理解和 ...

  7. oracle表名、字段名等对象的命名长度限制(报错:ORA-00972: 标识符过长)

    oracle表名.字段名等对象的命名长度限制(报错:ORA-00972: 标识符过长) 简单来说,出现了ORA-00972: 标识符过长的错误 找来找去发现是自己的中间表名太长导致的 Oracle数据 ...

  8. 【深度学习】基于 Alluxio 数据缓存的性能优化

    作者 | 车漾(阿里云高级技术专家).顾荣(南京大学 副研究员) 导读:Alluxio 项目诞生于 UC Berkeley AMP 实验室,自开源以来经过 7 年的不断开发迭代,支撑大数据处理场景的数 ...

  9. Flink 助力美团数仓增量生产

    简介: 本文由美团研究员.实时计算负责人鞠大升分享,主要介绍 Flink 助力美团数仓增量生产的应用实践.内容包括:1.数仓增量生产:2.流式数据集成:3.流式数据处理:4.流式 OLAP 应用:5. ...

  10. Let's Fluent:更顺滑的MyBatis

    简介: 只需瞅一眼Google Trends上全球Java界最热门的两款SQL映射框架近一年的对比数字,就不难了解其实力分布:在此领域,MyBatis早已占领东亚地区开发者市场,并以绝对优势稳居中国最 ...