数据局部性是将计算转移到数据所在节点(而不是将数据转移到计算节点),以减少网络拥塞并提高计算吞吐量的过程。
处理大量数据会对降低网络和系统的性能。在节点和系统之间移动庞大的数据集会消耗大量带宽,使其他操作变慢,并且移动过程中会耗费大量时间。数据局部性通过向数据位置转移明显较轻的处理代码来克服这一挑战。
它是什么?
数据局部性是将处理代码向系统中的数据转移,而不是通过网络强制处理大量数据。
数据局部性的应用场景是当处理数据集所需的代码小于数据集本身的时候——此时,代码向数据转移比数据向代码转移更有效,更经济。
数据局部性提供了一种减少网络流量和优化带宽使用的简单方法,对于经常处理遍布多个存储节点的大型数据集的组织来说,这种方法尤其可行。
有何益处?
如果组织需要处理大量数据,数据局部性可以缩短处理和执行时间,减少网络流量,这能加速决策,提升客户服务和降低成本。
数据局部性通过将计算转移到数据实际所在的节点(而不是将大量数据转移到计算位置)来发挥作用。这能减少经过系统的流量,降低网络负担,更有效地使用有限的带宽,进而有助于降低成本,提高网络和系统的整体性能。
需考量的因素?
不是所有处理场景都适合应用数据局部性。有些场景中,数据的分布或存储方式使得数据局部性实际上并不能显著提高效率,或者可能根本不适用。
此外,您会发现,应用程序越分散,部署和维护应用程序的过程就越复杂。
如何应用?
对于许多将 Apache Hadoop 或 Spark 作为数据生态系统核心部分的团队和组织来说,数据局部性是一种日常操作——数据局部性帮助这些团队和组织优化带宽使用以及控制日常数据处理的成本。
在适用的情况下,企业通过数据局部性使计算更接近数据(而不是不断移动庞大的数据集)。不断移动庞大的数据集会造成网络拥塞和影响系统性能。
相关主题
Would you like to suggest a topic to be decoded?
Just leave your email address and we'll be in touch the moment it's ready.