如何找到分布在多个服务器上的数字的平均值?

时间:2017-01-17 22:05:35

标签: algorithm statistics

我的情况是,我们有多个分布式服务器在日志文件中保存大型数据集。我需要计算一个值的平均值(平均值),但数据太大,无法将所有数据带到一台服务器并计算其中的平均值。当数据跨所有这些服务器时,如何计算平均值?

我想到的一种方法是让每个服务器计算(1)它自己的值的总和和(2)有多少个值的计数。可以在一台服务器上检索此信息,然后我可以将平均值计算为:

mean = sum(sum values) / sum(count values)

但是,我可能会溢出。我想我可以使用Java的BigDecimal类来处理所有求和值吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

根据您的建议,有各种各样的解决方案。可以发送本地均值和计数,而不是传输总和和计数。

Java的BigDecimal应该适用于大多数用例。