我目前正在研究一个大规模实验的分析应用框架。这个实验包含大约40个仪器,每个仪器产生大约一个gb/s的ns时间戳。这些数据是用来分析的时间块。对于implementation,我想知道在flink或spark停止处理数据之前,这样一个“块”aka batch能得到多大。我想我不必说我打算回忆处理过的数据。
eni9jsuy1#
一般来说,系统可以处理的数据量没有硬限制。这完全取决于你有多少个节点以及你有什么样的查询。由于听起来您主要希望在给定的时间窗口内聚合每个乐器,因此您的最大扩展限制为40。这是你可以用来解决问题的最大机器数。然后,问题就出现了:你的时间块有多大/聚合有多复杂。假设聚合要求存在窗口的所有数据,那么系统需要每秒保持1 gb。因此,如果窗口为一小时,则系统需要至少容纳3.6 tb的数据。如果机器的主内存不足,则需要将数据溢出到磁盘,这会大大降低处理速度。spark非常喜欢将所有数据保存在内存中,因此这是实际的限制。flink可以将几乎所有的数据溢出到磁盘,但磁盘i/o会成为一个瓶颈。如果您需要计算小值(如总和、平均值),那么主内存不应该成为问题。
在分析旧数据时,系统可以进行批处理,并且有更多的选项来处理卷,包括溢出到本地磁盘。如果你能将一个窗口的所有数据都保存在主内存中,那么spark通常会发光。如果您不确定这一点,或者您知道它将不适合主内存,flink是更具可扩展性的解决方案。不过,我希望这两个框架都能很好地适用于您的用例。我宁愿看看生态系统和你的西装。你想用哪种语言?感觉使用jupyter笔记本或齐柏林飞艇最适合你的特别分析和数据探索。尤其是如果你想使用python,我可能会先试试spark。
1条答案
按热度按时间eni9jsuy1#
用于实时数据分析
一般来说,系统可以处理的数据量没有硬限制。这完全取决于你有多少个节点以及你有什么样的查询。
由于听起来您主要希望在给定的时间窗口内聚合每个乐器,因此您的最大扩展限制为40。这是你可以用来解决问题的最大机器数。然后,问题就出现了:你的时间块有多大/聚合有多复杂。假设聚合要求存在窗口的所有数据,那么系统需要每秒保持1 gb。因此,如果窗口为一小时,则系统需要至少容纳3.6 tb的数据。
如果机器的主内存不足,则需要将数据溢出到磁盘,这会大大降低处理速度。spark非常喜欢将所有数据保存在内存中,因此这是实际的限制。flink可以将几乎所有的数据溢出到磁盘,但磁盘i/o会成为一个瓶颈。
如果您需要计算小值(如总和、平均值),那么主内存不应该成为问题。
用于旧数据分析
在分析旧数据时,系统可以进行批处理,并且有更多的选项来处理卷,包括溢出到本地磁盘。如果你能将一个窗口的所有数据都保存在主内存中,那么spark通常会发光。如果您不确定这一点,或者您知道它将不适合主内存,flink是更具可扩展性的解决方案。不过,我希望这两个框架都能很好地适用于您的用例。
我宁愿看看生态系统和你的西装。你想用哪种语言?感觉使用jupyter笔记本或齐柏林飞艇最适合你的特别分析和数据探索。尤其是如果你想使用python,我可能会先试试spark。