HDFS

  • 浅谈 HDFS 慢节点的解决方案

    这篇文章围绕 HDFS 慢节点导致 OLAP 查询忽快忽慢的问题,梳理了问题成因和几种常见缓解手段。正文先区分数据多读、IO 次数过多、跨多个 HDFS Block 读取以及纯粹运气不好连到慢 DataNode 等不同来源,再分别讨论 Hedged Read 在解决慢节点时的原理、线程池规划和额外内存成本,以及通过缩短 HDFS 客户端 IO timeout 来尽快放弃慢请求的思路,最后结合 Trino 的历史经验说明这类配置本质上只是补救措施,真正的关键仍然是减少不必要的 IO。

    2024年3月25日
    4.4K3
  • HDFS Hedged Read 的利弊分析

    这篇文章重新审视了 HDFS Hedged Read 的实际收益与代价,重点说明它虽然能缓解慢节点问题,但会显著放大内存开销。正文先回顾 Hedged Read 在超时后向其它副本发起并行读取的工作方式,再结合线上因频繁 OOM 触发查询失败的案例,分析 HDFS 客户端在开启该功能后会额外申请一个甚至两个 ByteBuffer,导致读取同一批数据时内存占用从原本的 1 倍上升到 2 到 3 倍,最后解释了为什么 HDFS 默认关闭这一功能。

    2023年11月12日
    2.3K2