2025年HDFS中Locality 为什么介于0~1之间?与HBase之间有什么关系?

HDFS中Locality 为什么介于0~1之间?与HBase之间有什么关系?一 Locality Locality 是 HDFS 中的一个概念 在后文中进行了解释 Locality 的数值可以明显反映出 HBase 在某些环境下的性能大小 在环境部署时 DataNode 消耗内存 CPU 资源较少 而 HBase 的 RegionServer 消耗内存和 CPU 资源较多

大家好,我是讯享网,很高兴认识大家。

一、Locality

Locality是HDFS中的一个概念(在后文中进行了解释),Locality的数值可以明显反映出HBase在某些环境下的性能大小

在环境部署时,DataNode消耗内存、CPU资源较少。而HBase的RegionServer消耗内存和CPU资源较多,所以我们可以把DataNode与RegionServer部署在同一机器上

此时Locality就与HBase密切相关了

对于DFSClient客户端来说,一个文件在这台机器上的Locality 可以定义为:

  • Locality =该文件存储在本地机器的字节数之和/该文件总字节数

所以Locality 是介于0至1之间的数,Locality 越大,说明本地数据越多,需要通过网络读取的数据越少,性能越高。反之…

二、为什么Locality介于0和1之间,不应该是1么?

以下是Locality不等于1的情况:

  • 读取数据时,DFSClient优先从本地读取,如果读取失败或者数据损毁,就从其他副本加载需要的数据。RegionServer会从其他DataNode上将数据拷贝回本节点,Locality 慢慢的接近1后等于1
  • RegionServer服务挂掉,Region会被分配到新的RegionServer上,但不是将这些Region全部分配给新的RegionServer中,会进行随机分配。有概率还会分布在同一RegionServer中
  • 集群重新启动,重新分配RegionServer与Region关系

为什么从其他副本加载信息会影响Locality ?

  • HDFS默认三副本策略以及机架感知原理,本地的副本失效,其余副本保存在其他节点,不在本节点上,将数据拷贝回本节点过程中Locality也就随之变化
小讯
上一篇 2025-02-23 13:09
下一篇 2025-02-28 16:20

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/50498.html