[HDFS]hdfs租约--我们flink写hdfs做checkpoint时候失败导致文件缺失

文件实际是写完的,因为checkpoint做失败了,导致文件没有被hdfs计算在内。

我们用flink 写入到hdfs,报错信息会提示replicas副本数量不足。

hdfs元信息里面记录的文件大小和实际落地的文件大小不一致。

导致hive的任务只获取到一部分数据。

这种情况很偶发,认为是hdfs集群负载过高导致。

但是集群的运维说其实这种问题也出现过几次了,其实就是hdfs的租约问题。

hdfs 写到最后,checkpoint失败的话,导致元数据没有及时被更新,导致读不到这个文件。或者读取有问题

解决:加上flink任务状态和错误日志的监控,出现问题告警。

但是实际上是因为checkpoint 失败,导致hdfs租约失败。

比如一个20k的文件,写到5k的时候,元数据记录成5k,然后后续还没更改元数据,然后客户端断了,可能会导致强制关闭文件。

然后会文件大小和元数据记录的大小不一致,文件就有问题。

关于hdfs的租约,网上也有很多详细的资料:

https://blog.csdn.net/androidlushangderen/article/details/52850349

总结:在HDFS中,当每次客户端用户往某个文件中写入数据的时候,为了保持数据的一致性,此时其它客户端程序是不允许向此文件同时写入数据的。那么HDFS是如何做到这一点的呢?答案是租约(Lease)。换句话说,租约是HDFS给予客户端的一个写文件操作的临时许可证,无此证件者将不被允许操作此文件
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值