Add hdfs-dev@h.a.o and user@h.a.o On Thu, Oct 26, 2023 at 7:07 PM 王继泽 <y98d...@163.com> wrote:
> 最近在使用hadoop的过程中,发现了一个情况。 > 当我使用c > api向hdfs联邦模式router节点rpc端口发送请求时,比如说写文件,客户端发送完成请求后,hadoop端需要20分钟延时文件才有字节大小,延时期间不能对文件进行操作。 > > 客户端这边运行结束之后,hadoop端日志大致过程: > 1.namenode接收到客户端的请求,FSEditLog打印日志。 > 2.blockmanager.BlockPlacementPolicy: 提示没有足够的副本可供选择. > Reason:{NO_REQUIRED_STORAGE_TYPE=1} > 3.StateChange: 分配block > 4.StateChange: 为hadoop目录文件获取租约 > 5.ipc.Server: 检查租约的方法抛了个异常 LeaseExpiredExcepion: INode is not a regular > file: / > 6.(开始等待) > 7.20分钟后,达到hard limit最大值限制。强制关闭租约。 > 8.触发 Lease recovery > 9.然后才可执行成功。 > > 我也怀疑过是客户端的问题。但是我做了几组测试,(都是用c api向hadoop发送写请求,以下简写) > 3.3.1版本、router、rpc端口。 --> 有20分钟延时 > 3.3.1版本、namenode、rpc端口。 --> 无问题 > 3.3.1版本、router、http端口。 --> 无问题 > 3.3.1版本、namenode、http端口。--> 无问题 > > 3.1.1版本、router、rpc端口。 --> 无问题 > 3.1.1版本、namenode、rpc端口。 --> 无问题 > 3.1.1版本、router、rpc端口。 --> 无问题 > 3.1.1版本、namenode、rpc端口。 --> 无问题 > > 以下是我的猜测: > 从hadoop日志中看,猜测是3.3.1版本、router、rpc端口一开始未获取到租约,所以导致无法正常关闭租约,直到hard > limit触发,才能退出。但是我无法解释为什么相同的客户端,3.1.1版本就无该现象。我怀疑是版本的变化改动与libhdfs3.so的某个部分不适配导致这一现象。 > > > 如果有人发现类似的情况,我希望得到回复,为我指明这个问题的方向。, > > > > | | > 王继泽 > | > | > y98d...@163.com > | > >