hadoop的hdfs中避免因节点掉线产生网络风暴

hadoop的hdfs中避免因节点掉线产生网络风暴

控制节点掉线RPC风暴的参数

三个参数都是hdfs-site.xml中参数,具体可以参考apache hadoop官网,其实块的复制速度有两个方面决定,一是namenode分发任务的速度,二则是datanode之间进行复制的速度。前者可以理解成入口,后者可以当成出口。
1.入口参数:从namenode层面控制任务分发,这个参数修改必须重启namenode,不需要重启datanode.

复制代码
dfs.namenode.replication.work.multiplier.per.iteration 
这个参数apache hadoop默认值2,cdh集群默认值10

这个参数决定了当NN与DN进行心跳(3s)发送任务列表时,告诉每个DN可以进行复制的block数量。比如集群有500个节点,这个值设置为10,那么一次心跳namnode可以发送datanode复制的数据块数量是10*500=5000块。假如一个节点掉线/退役有800000块block需要复制,则namenode需要多长时间可以将待复制块的任务分发完给datanode呢。

极限计算的结果:

复制代码
任务分发时间=待复制block总数/(集群活跃dn*参数值)*心跳时间
time=800000/(500*10)=160次心跳*3s/每次心跳=480s=8分钟

所以节点越多,会分发任务越快,分发速度跟节点数和这个参数都成正比

2.出口参数:相比上面从nanode任务分发控制,下面两个使用datanode层面控制,这两个参数也需要重启namenode

复制代码
1.dfs.namenode.replication.max-streams

apache hadoop默认值是2,cdh集群默认20。

这个参数含义是控制datanode节点进行数据复制的最大线程数,从上面我们知道block的复制优先级分成5种。这个参数控制不包含最高优先级的块复制。即除最高优先级的复制流限制

复制代码
2.dfs.namenode.replication.max-streams-hard-limit

这个值apache hadoop默认值2,cdh集群默认值40

这个参数含义是控制datanode所有优先级块复制的流个数,包含最高优先级;一般上面和上面两个参数互相的配合使用。

相关推荐
B站_计算机毕业设计之家1 小时前
计算机视觉:python车牌识别检测系统 YOLOv8 深度学习pytorch技术 LPRNet车牌识别算法 CCPD2020数据集 ✅
大数据·python·深度学习·机器学习·计算机视觉·数据分析·车牌识别
FreeBuf_4 小时前
从“策略对抗”到“模型对抗”:朴智平台如何重塑金融风控新范式?
大数据·人工智能
HitpointNetSuite5 小时前
连锁餐饮行业ERP如何选择:为何Oracle NetSuite成为增长新引擎
大数据·运维·数据库·oracle·netsuite
EasyCVR10 小时前
从汇聚到智能:解析视频融合平台EasyCVR视频智能分析技术背后的关键技术
大数据·人工智能
hqyjzsb12 小时前
2025文职转行AI管理岗:衔接型认证成为关键路径
大数据·c语言·人工智能·信息可视化·媒体·caie
sniper_fandc12 小时前
Elasticsearch从入门到进阶——分布式特性
大数据·分布式·elasticsearch
YangYang9YangYan13 小时前
大专计算机技术专业就业方向:解读、规划与提升指南
大数据·人工智能·数据分析
扫地的小何尚14 小时前
AI创新的火花:NVIDIA DGX Spark开箱与深度解析
大数据·人工智能·spark·llm·gpu·nvidia·dgx
B站_计算机毕业设计之家14 小时前
spark实战:python股票数据分析可视化系统 Flask框架 金融数据分析 Echarts可视化 大数据技术 ✅
大数据·爬虫·python·金融·数据分析·spark·股票
hzp66614 小时前
spark动态分区参数spark.sql.sources.partitionOverwriteMode
大数据·hive·分布式·spark·etl·partitionover