探测准确度90%以上,小米工程师的HDFS慢节点监控与处理技术实践

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"HDFS(Hadoop分布式文件系统)集群随着使用时间的增长,难免会出现一些“性能退化”的节点,主要表现为磁盘读写变慢、网络传输变慢,我们统称这些节点为慢节点。当集群扩大到一定规模,比如上千个节点的集群,慢节点通常是不容易被发现的。大多数时候,慢节点都藏匿于众多健康节点中,只有在客户端频繁访问这些有问题的节点,发现读写变慢了,才会被感知到。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"因此,要想维护HDFS集群读写性能稳定,慢节点问题一直是一个绕不开的话题。在Hadoop2.9之后,社区支持了从Namenode jmx上查看慢节点的功能,小米基于此框架,开发了一整套HDFS集群慢节点监控及自动处理流程,在实际生产环境中,具有不错的应用效果,可以保证慢节点能够被及时准确发现,并在NameNode端自动规避处理。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"1、HDFS写pipeline的流程"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"为了保证高可靠性,文件默认以三副本的形式保存在HDFS上,当client开始写入一个新文件的时候,首先会找出三个DataNode建立pipeline,随后数据以packet为最小单元,依次通过pipeline里的三个DN,完成三副本写入。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章