143-147-Hadoop-调优-集群压测相关

51 篇文章 1 订阅
27 篇文章 0 订阅

143-147-Hadoop-nn配置-集群压测相关:

HDFS—核心参数

NameNode 内存生产配置

1)NameNode 内存计算

每个文件块大概占用 150byte,一台服务器 128G 内存为例,能存储多少文件块呢?

128 * 1024 * 1024 * 1024 / 150Byte ≈ 9.1 亿

G MB KB Byte

2)Hadoop2.x 系列,配置 NameNode 内存

NameNode 内存默认 2000m,如果服务器内存 4G,NameNode 内存可以配置 3g。在

hadoop-env.sh 文件中配置如下。

HADOOP_NAMENODE_OPTS=-Xmx3072m

3)Hadoop3.x 系列,配置 NameNode 内存

(1)hadoop-env.sh 中描述 Hadoop 的内存是动态分配的

启动集群

(2)查看 NameNode 占用内存

jps jmap -heap 进程id

在这里插入图片描述

(3)查看 DataNode 占用内存

在这里插入图片描述

查看发现 NameNode 和 DataNode 占用内存都是自动分配的,且相等。 不是很合理。

具体修改:hadoop-env.sh

export HDFS_NAMENODE_OPTS="-Dhadoop.security.logger=INFO,RFAS -
Xmx1024m"
export HDFS_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS
-Xmx1024m"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EsGzrhhT-1669213553171)(png/1624673491043.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DEBCedHu-1669213553171)(png/1624673552863.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D0mx06RV-1669213553172)(png/1624673593881.png)]

修改完毕需要重启集群

NameNode 心跳并发配置

namenode需要接收datanode的心跳以及客户端的请求等

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2G4fvNqB-1669213553173)(png/1624673849064.png)]

1)hdfs-site.xml

The number of Namenode RPC server threads that listen to requests 
from clients. If dfs.namenode.servicerpc-address is not 
configured then Namenode RPC server threads listen to requests 
from all nodes.
NameNode 有一个工作线程池,用来处理不同 DataNode 的并发心跳以及客户端并发
的元数据操作。
对于大集群或者有大量客户端的集群来说,通常需要增大该参数。默认值是 10。
<property>
 <name>dfs.namenode.handler.count</name>
 <value>21</value>
</property>

企业经验:dfs.namenode.handler.count=20 × 𝑙𝑜𝑔𝑒
𝐶𝑙𝑢𝑠𝑡𝑒𝑟 𝑆𝑖𝑧𝑒,比如集群规模(DataNode 台
数)为 3 台时,此参数设置为 21。可通过简单的 python 代码计算该值,代码如下。 
int(20*math.log(3))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nNCinb2s-1669213553173)(png/1624674119731.png)]

开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、

备份等作用。

1)回收站工作机制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aCEjiM3d-1669213553174)(png/1624674232321.png)]

2)开启回收站功能参数说明

(1)默认值 fs.trash.interval = 0,0 表示禁用回收站;其他值表示设置文件的存活时间。

(2)默认值 fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为 0,则该

值设置和 fs.trash.interval 的参数值相等。

(3)要求 fs.trash.checkpoint.interval <= fs.trash.interval

3)启用回收站

修改 core-site.xml,配置垃圾回收时间为 1 分钟。

<property>
 	<name>fs.trash.interval</name>
 	<value>1</value>
</property>

4)查看回收站

回收站目录在 HDFS 集群中的路径:/user/atguigu/.Trash/….

5)注意:通过网页上直接删除的文件也不会走回收站。

6)通过程序删除的文件不会经过回收站,需要调用 moveToTrash()才进入回收站

Trash trash = New Trash(conf);
trash.moveToTrash(path);

7)只有在命令行利用 hadoop fs -rm 命令删除的文件才会走回收站。

hadoop fs -rm -r /user/atguigu/input

8)恢复回收站数据

 hadoop fs -mv /user/atguigu/.Trash/Current/user/atguigu/input /user/atguigu/input

HDFS**—集群压测**

100Mbps 单位是 bit;10M/s 单位是 byte ; 1byte=8bit,100Mbps/8=12.5M/s。

测试 HDFS 写性能

写测试底层原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xC7zCpOW-1669213553175)(png/1624674882706.png)]

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

[root@hadoop102 hadoop-3.1.4]# hadoop jar /opt/module/hadoop-3.1.4/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.4-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MB

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ofalgeHA-1669213553175)(png/1624676424250.png)]

注意:nrFiles n 为生成 mapTask 的数量,生产环境一般可通过 hadoop103:8088 查看 CPU

核数,设置为(CPU 核数 - 1)

➢ Number of files:生成 mapTask 数量,一般是集群中(CPU 核数-1),我们测试虚

拟机就按照实际的物理内存-1 分配即可

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

➢ Throughput mb/sec:单个 mapTak 的吞吐量

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

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

➢ Average IO rate mb/sec::平均 mapTak 的吞吐量

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

全部相加除以 task 数量

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

2)注意:如果测试过程中,出现异常

(1)可以在 yarn-site.xml 中设置虚拟内存检测为 false

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

(2)分发配置并重启 Yarn 集群

3)测试结果分析 (了解)

(1)由于副本 1 就在本地,所以该副本不参与测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pO2XGuVx-1669213553176)(png/1624676693384.png)]

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

压测后的速度:1.61

实测速度:1.61M/s * 20 个文件 ≈ 32M/s

三台服务器的带宽:12.5 + 12.5 + 12.5 ≈ 30m/s

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

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

或者增加磁盘个数。

(2)如果客户端不在集群节点,那就三个副本都参与计算

测试 HDFS 读性能

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

[root@hadoop102 hadoop-3.1.4]# hadoop jar /opt/module/hadoop-3.1.4/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.4-tests.jar TestDFSIO -read -nrFiles 10 -fileSize 128MB

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MtIVMpNv-1669213553177)(png/1624676884937.png)]

2)删除测试生成数据

[root@hadoop102 hadoop-3.1.4]# hadoop jar /opt/module/hadoop-3.1.4/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.4-tests.jar TestDFSIO -clean

d -nrFiles 10 -fileSize 128MB


[外链图片转存中...(img-MtIVMpNv-1669213553177)]

2)删除测试生成数据

[root@hadoop102 hadoop-3.1.4]# hadoop jar /opt/module/hadoop-3.1.4/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.4-tests.jar TestDFSIO -clean


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值