HDFS 文件最大打开句柄数设置太小导致读写文件异常

举报
xxlla 发表于 2022/04/23 16:36:48 2022/04/23
【摘要】 适用版本6.5.x。问题背景与现象文件最大打开句柄数设置太小,导致文件句柄不足。写文件到HDFS很慢,或者写文件失败。原因分析DataNode日志“/var/log/Bigdata/hdfs/dn/hadoop-omm-datanode-XXX.log”,存在异常提示java.io.IOException: Too many open files。2016-05-19 17:18:59,12...

适用版本

6.5.x。

问题背景与现象

文件最大打开句柄数设置太小,导致文件句柄不足。写文件到HDFS很慢,或者写文件失败。

原因分析

  1. DataNode日志/var/log/Bigdata/hdfs/dn/hadoop-omm-datanode-XXX.log,存在异常提示java.io.IOException: Too many open files。

    2016-05-19 17:18:59,126 | WARN | org.apache.hadoop.hdfs.server.datanode.DataXceiverServer@142ff9fa | YSDN12:25009:DataXceiverServer: | org.apache.hadoop.hdfs.server.datanode.DataXceiverServer.run(DataXceiverServer.java:160)

    java.io.IOException: Too many open files

    at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)

    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)

    at sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:100)

    at org.apache.hadoop.hdfs.net.TcpPeerServer.accept(TcpPeerServer.java:134)

    at org.apache.hadoop.hdfs.server.datanode.DataXceiverServer.run(DataXceiverServer.java:137)

    at java.lang.Thread.run(Thread.java:745)

  2. 如果某个Datanode日志中打印Too many open files,说明该节点文件句柄不足,导致打开文件句柄失败,然后就会重试往其他datanode节点写数据,最终表现为写文件很慢或者写文件失败。

解决办法

  1. 执行ulimit -a命令查看有问题节点文件句柄数最多设置是多少,如果很小,建议修改成640000。

  2. 执行vi /etc/security/limits.d/90-nofile.conf编辑这个文件,修改文件句柄数设置。如果没有这个文件,可以新建一个文件,并按照下图内容修改。

  3. 重新打开一个终端,用ulimit -a命令查看是否修改成功,如果没有,请重新按照上述步骤重新修改。

  4. 从FusionInsight Manager页面重启DataNode实例。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。