【大数据之Hadoop】二十六、生产调优-HDFS集群压测

news2024/12/22 19:43:43

  测试上传数据到集群和拉取数据的时间。HDFS的读写性能主要受网络和磁盘影响比较大。为了方便测试,将hadoop102、hadoop103、hadoop104虚拟机网络的带宽都设置为100Mbps。100Mbps/8=12.5M/s。

1 测试HDFS写性能

写测试原理:
  向磁盘写测试文件,然后通过MapTask读文件写到HDFS,写的过程中会记录每个Map向HDFS写的总时间和平均速度,然后把值汇总到ReduceTask,汇总之后再由ReduceTask计算吞吐量:

  Average IO rate=所有的map平均速度之和/文件总数

  Througput=所有数据量累加/所有map总时间之和

  测试文件个数=集群cpu总核数-1(如3台服务器,每台服务器cpu核数为1,则测试文件个数=3*1-1=2)用来保证每个MapTask在每个节点上都有启动。

在这里插入图片描述
向HDFS写2个128M的文件。

hadoop jar/opt/module/hadoop-3.3.1/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.3.1-tests.jarTestDFSIO -write -nrFiles 2 -fileSize 128MB

如果测试中出现异常,会提示内存大于虚拟内存。
原因:
  虚拟内存检测中,设置的物理内存为2G,虚拟内存为物理内存的2.1倍,即虚拟内存为4.2G,但由于centos7和Java8兼容不是特别好,Linux会给程序预留大量内存,导致实际得到的虚拟内存小于物理内存,导致虚拟内存经常溢出,所以只开启物理内存。

解决:
  在yarn-site.xml中设置虚拟内存检测为false,然后分发文件并重启yarn。

<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true-->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
     <value>false</value>
</property>

在这里插入图片描述
返回参数解释:
  Number of files:生成MapTask数量,一般是集群中CPU核数-1,测试虚拟机就按照实际的物理内存-1分配即可。

  Total MBytes processed:单个map处理的文件大小。

  Throughput mb/sec:单个mapTak的吞吐量
    Througput=所有数据量累加/所有map总时间之和
    集群整体吞吐量:生成mapTask数量x单个mapTak的吞吐量。

  Average IO rate mb/sec:平均mapTak的吞吐量
    Average IO rate=所有的map平均速度之和/文件总数
    单个map平均速度=单个MapTask处理文件大小/单个MapTask写数据的时间

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

结果分析:
在这里插入图片描述
副本1在本地,所以不参与测试,参与测试的文件数量=2个文件x2个副本=4个。

压测后的速度=1.67

实测速度=1.67M/s x 4个文件 = 6.68M/s

三台服务器带宽总和=12.5+12.5+12.5=37.5M/s

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

2 测试HDFS读性能

读取HDFS集群2个128M的文件。

hadoop jar/opt/module/hadoop-3.3.1/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.3.1-tests.jarTestDFSIO -read -nrFiles 2 -fileSize 128MB

在这里插入图片描述
文件读取速度大于带宽原因:
  数据读取使用就近原则,此时只有3台服务器、3个副本,读取时相当于读取的时本地磁盘的数据,没有经过网络。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/500816.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL数据库——MySQL下载安装

&#xff08;1&#xff09;数据库相关概念&#xff1a; &#xff08;2&#xff09;MySQL数据库下载&#xff08;windows版&#xff09;: 下载地址&#xff1a;MySQL :: Download MySQL Installerhttps://dev.mysql.com/downloads/installer/MySQL :: Download MySQL Installer…

Python小姿势 - Python中的类型检查

Python中的类型检查 在Python中&#xff0c;类型检查是通过内置函数isinstance()来实现的。 isinstance() 函数用于判断一个对象是否是一个已知的类型&#xff0c;类似 type()。 isinstance() 与 type() 区别&#xff1a; type() 不会认为子类是一种父类类型。 isinstance() 会…

【Linux下】线程概念

文章目录 【Linux下】线程概念理解线程线程操作接口线程和进程线程和进程的关系代码验证 线程优点线程缺点 【Linux下】线程概念 理解线程 一般的书上都是这么描述线程的 线程&#xff1a;是在进程内部运行的一个执行分支&#xff0c;属于进程的一部分&#xff0c;粒度要比进…

简单搭建Fabric网络

Fabric网络的搭建分为两个阶段&#xff1a;生成网络拓扑和启动网络。在这里&#xff0c;我们假设要搭建一个具有一个orderer节点和两个peer节点的Fabric网络。 在生成网络拓扑之前&#xff0c;需要准备好以下文件&#xff1a; crypto-config.yaml&#xff1a;用于生成组织和节…

什么牌子蓝牙耳机好用不贵?国产性价比高的蓝牙耳机推荐

相较于有线耳机&#xff0c;无线蓝牙耳机更便携、功能更丰富&#xff0c;不用受到耳机孔与线的限制。那么&#xff0c;什么牌子的蓝牙耳机好用不贵&#xff1f;针对这个问题&#xff0c;我给大家推荐几款国产性价比高的蓝牙耳机&#xff0c;可以当个参考。 一、南卡小音舱Lite…

JAVA代码规范审查

JAVA代码规范审查 1. 添加必要的注释 所有的类都必须添加创建者和创建日期&#xff0c;以及简单的注释描述 方法内部的复杂业务逻辑或者算法&#xff0c;需要添加清楚的注释 一般情况下&#xff0c;注释描述类、方法、变量的作用 任何需要提醒的警告或TODO&#xff0c;也要注…

python基础语法1

基本语句 判断语句 1.if语句 if 语法格式: if 要判断的条件:条件成立时&#xff0c;要做的事情 -------------------------- 执行流程:判断条件为True就执行if的语句体.条件为False就执行if以外的代码. if 案例: age int(input(请输入年龄))print(-----开始-----) if ag…

测试遵循的原则

测试遵循的原则 软件测试是在规定的条件下对程序进行操作&#xff0c;以发现程序错误&#xff0c;衡量软件质量&#xff0c;并对其是否能满足设计要求进行评估的过程。软件测试的基本原则有助于测试人员进行高质量的测试&#xff0c;尽早尽可能多的发现缺陷&#xff0c;并负责跟…

【51单片机】:串口通信基础知识详解

学习目标&#xff1a; 串口通信的基础知识和设置详解。 学习内容&#xff1a;串口通信基础知识 并行通信&#xff1a;多条数据线将数据字节的各个位同时传送*缺点&#xff1a;1.电磁干扰 2.成本高 3.由于传输线较多&#xff0c;长距离传输成本高串口通信&#xff1a;将数据字节…

STL常用梳理——STACK、QUEUE

STL——适配器篇 1、ListSTL list 容器介绍list使用 2、适配器介绍3、Deque容器Stack、Queue适配器实现 1、List STL list 容器介绍 STL list 容器&#xff0c;又称双向链表容器&#xff0c;即该容器的底层是以双向链表的形式实现的。这意味着&#xff0c;list 容器中的元素可…

Lecture 11(Preparation):领域自适应 (Domain Adaptation)

Domain shift: Training and testing data have different distributions. Transfer learning&#xff1a;在A任务上学到的技能&#xff0c;可以被用在B任务上 Domain Adaptation的技术&#xff0c;可以看作是Transfer learning的一种 Domain Adaptation: 第一种情况&#xf…

栈和队列OJ题思路分享之括号匹配(C语言实现)

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:刷题分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你刷更多C语言和数据结构的题!   &#x1f51d;&#x1f51d; 栈和队列刷题分享 1. 前言&…

【密码学复习】第七章 公钥加密体制

公钥加密模型 密钥生成过程&#xff1a;接收消息的端系统&#xff08;如图中的接收者Alice&#xff09;产生一对密钥(PKA ,SKA ), PKA 是公开钥&#xff08;用于加密&#xff09;&#xff0c; SKA 是秘密密钥&#xff08;用于解密&#xff09;. 加密过程&#xff1a;Bob想向…

从C出发 30 --- 指针与堆空间

数组 就是变量的有序集&#xff0c;因此只有可以动态的创建一个变量&#xff0c;就可以动态的创建多个变量了&#xff0c; 堆空间就是一片内存区域&#xff0c;用于动态创建内存变量的区域 void 类型是基础类型&#xff0c;不是基础数据类型&#xff0c;为什么&#xff1f;因为…

MySQL --- 图形化工具DDL表结构操作

一. 图形化工具 1. 介绍 前面学习了DDL中关于数据库操作的SQL语句&#xff0c;在编写这些SQL时&#xff0c;都是在命令行当中完成的。在命令行当中来敲这些SQL语句很不方便&#xff0c;主要的原因有以下 3 点&#xff1a; 没有任何代码提示。&#xff08;全靠记忆&#xff0…

行为型模式-备忘录模式

备忘录模式 概述 备忘录模式提供了一种状态恢复的实现机制&#xff0c;使得用户可以方便地回到一个特定的历史步骤&#xff0c;当新的状态无效或者存在问题时&#xff0c;可以使用暂时存储起来的备忘录将状态复原&#xff0c;很多软件都提供了撤销&#xff08;Undo&#xff0…

【自动化测试】Appium环境设置

启动Appium需要的环境配置有些复杂&#xff0c;这里将需要的环境配置整理出来&#xff0c;附上博主亲测有效的教程&#xff0c;有些教程有一点点老了&#xff0c;博主也做了备注&#xff0c;并且有些老一点步骤&#xff0c;博主根据现有的情况做了新的图文教程&#xff0c;大家…

近源渗透学习

一、近源渗透 近源渗透测试是网络空间安全领域逐渐兴起的一种新的安全评估手段。 它是一种集常规网络攻防、物理接近、社会工程学及无线电通信攻防等能力于一体的高规格网络安全评估行动。网络安全评估小组在签订渗透测试授权协议后&#xff0c;通过乔装、社工等方式实地物理侵…

微服务体系

目录 结构服务注册中心EurekaZookeeperConsul上面三者的对比 Ribbon 负载均衡负载均衡OpenFeign 远程服务调用Hystrix服务熔断常见的设置 Hystrix 工作流程Hystrix-DashBoard 的使用 SpringCloud Gateway核心工作流程 SpringCloud Config 分布式配置中心bootstrap.yml配置文件 …

独立按键识别

项目文件 文件 关于项目的内容知识点可以见专栏单片机原理及应用 的第四章 IO口编写 参考图电路编写程序&#xff0c;要求实现如下功能: 开始时LED均为熄灭状态&#xff0c;随后根据按键动作点亮相应LED(在按键释放后能继续保持该亮灯状态&#xff0c;直至新的按键压下时为止…