dfs.namenode.handler.count配置参数的总要性

编程入门 行业动态 更新时间:2024-10-26 21:19:39

dfs.namenode.handler.count配置参数的<a href=https://www.elefans.com/category/jswz/34/1720827.html style=总要性"/>

dfs.namenode.handler.count配置参数的总要性

这篇文章的故障,虽然用分批启动DN节点的方法,避免了重启HDFS的出现的内存问题。但是治标不治本,风险依然是存在的。所以要从根本上根治这个疑难杂症,就要从其他参数配置着手。

最终,锁定一个参数配置dfs.namenode.handler.count。先来看看它的解释
NameNode有一个工作线程池用来处理客户端的远程过程调用及集群守护进程的调用。处理程序数量越多意味着要更大的池来处理来自不同DataNode的并发心跳以及客户端并发的元数据操作。对于大集群或者有大量客户端的集群来说,通常需要增大参数dfs.namenode.handler.count的默认值10。设置该值的一般原则是将其设置为集群大小的自然对数乘以20,即20logN,N为集群大小。
如果该值设的太小,明显的状况就是DataNode在连接NameNode的时候总是超时或者连接被拒绝,但NameNode的远程过程调用队列很大时,远程过程调用延时就会加大。症状之间是相互影响的,很难说修改dfs.namenode.handler.count就能解决问题,但是在查找故障时,检查一下该值的设置是必要的。

我们发现,在集群中,这个参数被本地的维护人员修改的很大,达到了4000,也就是说,配置了一个线程池,可以容纳4000个线程,这样在消息通信时,这里容纳的信息量就是非常庞大的,最终造成了内存的溢出。因此这个值可以放大,但是不能加的过大。配多少?有公式

python -c 'import math ; print int(math.log(N) * 20)'  
#N 集群服务器数量

更多推荐

dfs.namenode.handler.count配置参数的总要性

本文发布于:2023-07-28 20:15:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1298223.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:总要   参数   namenode   dfs   count

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!