前言
在大规模集群中,节点挂掉的现象是十分常见。当节点挂掉的时候,上面所跑的任务或者发送到这个节点的请求将会失败。按照分布式系统的正常处理方法,它会选择另外的节点进行重新的数据请求。这种重试机制在一定程度上可以解决因为节点意外挂掉导致的请求失败情况,但是这种方式并不是高效的。假设每次的重试代价比较高时,这个时候我们其实更期待能提前检测到这些挂掉的节点。因此我们需要有一套DeadNode节点的监测机制来帮助我们做这样的事情。本文笔者来聊聊关于社区目前在做的关于HDFS DeadNode节点的Detection机制的相关内容。
HDFS DFSClient现有DeadNode监测
在HDFS中,读写文件操作是由DFSClient所操作的。DFSClient代表的一个客户端对象,DFSClient可以open多个DFSInputStream去读多个不同的文件。
DFSClient用DFSInputStream读文件时,假若发现有类似节点连接不上的问题,会将连接不上的节点加入到DFSInputStream的本地节点列表内。这样的话,当此DFSInputStream对象在选后续节点时,就会避开那些之前发现的dead node。
但是这里有个问题是ÿ
版权声明:本文为Androidlushangderen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。