【发布时间】:2017-11-30 02:32:58
【问题描述】:
我在写入 HDFS 时遇到了一些问题(通过 Flume 的 HDFS Sink)。我认为这些主要是由于 IO 超时引起的,但不确定。
我最终得到了长时间打开以供写入的文件,并给出错误“无法获得定位块 {...} 的块长度”。如果我明确恢复租约,它可以修复。我试图了解可能导致这种情况的原因。我一直在尝试重现这个外部水槽,但还没有运气。有人可以帮助我了解这种情况何时会发生 - HDFS 上的文件最终不会关闭并保持这种状态,直到手动干预以恢复租约?
我认为租约是根据软硬限制自动恢复的。我尝试杀死正在写入 HDFS 的示例代码(我还尝试断开网络以确保不执行关闭挂钩)以使文件保持打开状态以供写入但无法重现它。
【问题讨论】: