400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

HDFS客户端读写超时时间的示例分析

小编给大家分享一下HDFS客户端读写超时时间的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联是一家专业提供城北企业网站建设,专注与成都做网站、成都网站建设、H5场景定制、小程序制作等业务。10年已为城北众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

背景

前段时间我们Hadoop集群磁盘使用率比较高,部分硬盘空间使用超过了70%,这部分服务器DataNode服务读写负载就比较高,造成部分数据同步任务因为读写超时而失败。具体场景和异常跟这篇博客里描述的很像。

DFSClient客户端与HDFS交互进行数据读写,需要从NameNode拿到元数据信息,再和DataNode交互,因此,超时时间也同时涉及这两个服务。以下分别是客户端与这两个服务交互的超时时间的解析。

客户端与NameNode超时时间

客户端与NameNode的操作超时时间由以下两个配置控制:

NameNode节点处于满负载、NameNode所在节点的CPU 100%耗尽时,导致NameNode无法响应,对于新连接到该NameNodeHDFS客户端,能够主备切换连接到另一个NameNode,进行正常的操作,而对于已经连接到该NameNode节点的HDFS客户端可能会卡住,无法进行下一步操作。

HDFS客户端到NameNodeRPC连接存在keep alive机制,保持连接不会超时,尽力等待服务器的响应,因此导致已经连接的HDFS客户端的操作会卡住。

对于已经卡住的HDFS客户端,可以进行如下操作:

为了避免该问题出现,在上述问题场景下,可以在客户端的配置文件core-site.xml中做如下配置:

客户端与DataNode读写超时时间

DataNode的读写超时时间由以下两个配置控制:

以上配置是在HDFS客户端进行设置,它们的默认值在org.apache.hadoop.hdfs.server.common.HdfsServerConstants类里:

// Timeouts for communicating with DataNode for streaming writes/reads
  // DataNode读写超时时间
  public static final int READ_TIMEOUT = 60 * 1000;
  public static final int READ_TIMEOUT_EXTENSION = 5 * 1000;
  public static final int WRITE_TIMEOUT = 8 * 60 * 1000;
  public static final int WRITE_TIMEOUT_EXTENSION = 5 * 1000; //for write pipeline

DataNode读写超时的时间是跟DataNode的数量有关的,最终是根据DataNode的数量确定读写超时时间,计算方式是以读写超时时间的值乘以节点的数量,逻辑在org.apache.hadoop.hdfs.DFSClient类里:

/**
 * Return the timeout that clients should use when writing to datanodes.
 * @param numNodes the number of nodes in the pipeline. 管道中节点的数量
 */
int getDatanodeWriteTimeout(int numNodes) {
  return (dfsClientConf.confTime > 0) ?
    (dfsClientConf.confTime + HdfsServerConstants.WRITE_TIMEOUT_EXTENSION * numNodes) : 0;
}

int getDatanodeReadTimeout(int numNodes) {
  return dfsClientConf.socketTimeout > 0 ?
      (HdfsServerConstants.READ_TIMEOUT_EXTENSION * numNodes +
          dfsClientConf.socketTimeout) : 0;
}

以上是“HDFS客户端读写超时时间的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


本文标题:HDFS客户端读写超时时间的示例分析
标题网址:http://www.bluegullmedia.com/article/jshied.html

其他资讯

让你的专属顾问为你服务

0.0417s