HDFS中的高吞吐量与低延迟

时间:2013-05-23 15:32:27

标签: hadoop hdfs low-latency throughput

我试图用自己的话来定义HDFS中的高吞吐量与低延迟的含义,并提出以下定义:

  

HDFS经过优化,可以更快地访问批量数据集(高   吞吐量),而不是该数据集中的特定记录(低)   等待时间)

有意义吗? :)

谢谢!

2 个答案:

答案 0 :(得分:25)

我认为你所描述的更像是优化不同访问模式(顺序,批量和随机访问)之间的区别,而不是最纯粹意义上的吞吐量和延迟之间的差异。

当我想到高延迟系统时,我不会考虑我正在访问哪条记录,而是访问任何记录都会产生很高的开销。从HDFS访问文件的第一个字节可能需要大约一秒钟或更长时间。

如果您更倾向于定量,则可以考虑将{N}个T(N)=aN+b作为记录N所需的总时间。这里,a表示吞吐量,b表示延迟。对于像HDFS这样的系统,N通常很大,b变得无关紧要,有利于低a的权衡是有益的。与低延迟数据存储相比,通常每次读取只访问单个记录,然后优化低b更好。

话虽如此,你的陈述并不正确;这绝对是正确的,批量访问存储通常具有高延迟和高吞吐量,而随机访问存储具有低延迟和低吞吐量,但并非总是如此。

答案 1 :(得分:4)

我会在这个问题上采取行动。

低延迟数据访问:我按下回车键(或提交按钮)和我 期望结果在几秒钟内。我的数据库查询时间应该是 亚秒级。 高吞吐量数据:我想扫描数百万行数据并计数 或者总结一些子集。我希望这需要几分钟(或更长时间) 根据复杂程度)来完成。想想更多批处理工作。

警告:这实际上也是一个map / reduce问题。设置和处理 M / R工作需要一些开销。有几个项目 现在正致力于降低延迟数据访问。

此外,HDFS将数据存储在块中并将它们分布在许多节点上。  这意味着(几乎)总会有一些网络数据传输 需要得到最终答案,并且“减慢”一些事情, 取决于吞吐量和各种其他因素。

希望有所帮助。 :)