gpt4 book ai didi

hadoop - HBase on Hadoop,数据局部性深潜

转载 作者:可可西里 更新时间:2023-11-01 14:52:22 25 4
gpt4 key购买 nike

我已经阅读了多篇关于 HBase 如何获得数据局部性的文章,即 linkHBase 权威指南一书。

我了解到,在重写 HFile 时,Hadoop 会在同一台机器上写入 block ,这实际上是在 Hadoop 上进行压缩并创建更大文件的同一台区域服务器。一切都很好理解。

问题:

  1. 假设区域服务器有一个区域文件 (HFile),该文件在 Hadoop 上被拆分为多个 block ,即 A、B、C。这是否意味着所有 block (A、B、C)都将写入同一区域服务器?

  2. 如果压缩后的 HFile 有 10 个 block (大文件),但区域服务器没有存储所有 block ,会发生什么情况?这是否意味着我们失去了数据局部性,因为这些 block 将写入其他机器?

感谢您的帮助。

最佳答案

HBase 使用 HDFS API 将数据写入分布式文件系统 (HDFS)。我知道这会增加您对数据局部性的怀疑。当客户端使用 hdfs API 将数据写入 HDFS 时,它确保将数据的副本写入本地数据节点(如果适用),然后进行复制。现在我来回答你的问题,

  1. 是的。由特定 RegionServer(RS) 写入的 HFile( block )驻留在本地数据节点中,直到它被 HMaster 移动以进行负载平衡或恢复(将在主要压缩时返回)。因此 block A、B、C 将位于同一区域服务器中。

  2. 是的。这可能会发生。但是我们可以通过在创建时为 HBase 表的每个区域配置区域开始和结束键来控制相同的情况,这允许数据在集群中均匀分布。

希望这对您有所帮助。

关于hadoop - HBase on Hadoop,数据局部性深潜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39878015/

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