gpt4 book ai didi

hadoop - 在 HDFS 中本地化 HFile block

转载 作者:可可西里 更新时间:2023-11-01 14:53:04 28 4
gpt4 key购买 nike

我们使用 Mapreduce 批量创建 HFile,然后将其增量/批量加载到 HBase 中。我注意到加载只是一个 HDFS 移动命令(它不会物理移动文件 block )。

由于我们进行了大量的 HBase 表扫描并且我们启用了短路读取,因此将这些 HFile 本地化到它们各自区域的节点将是有益的。

我知道主要压缩可以实现这一点,但当 HFile 与区域大小相比较小时,这些压缩效率很低。

最佳答案

HBase 使用 HDFS 作为文件系统。 HBase 不控制 HDFS block 的数据局部性。
当使用 HBase API 向 HBase 写入数据时,HBase RegionServer 成为 HDFS 的客户端,在 HDFS 中,如果客户端节点也是数据节点,则还会创建一个本地 block 。因此,当使用 HBase API 进行写入时,localityIndex 较高。

当使用批量加载时,HFiles 已经存在于 HDFS 中。因为,它们已经存在于 hdfs 上。 HBase 只会使这些 hfile 成为区域的一部分。在这种情况下,无法保证数据局部性。

如果您真的需要高数据局部性,那么我建议您使用 HBase API 进行写入,而不是批量加载。
我一直在使用 HBase API 从我的 MR 工作中写入 HBase,到目前为止它们运行良好。

关于hadoop - 在 HDFS 中本地化 HFile block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31900276/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com