处理如此大的数据需要多少台服务器[关闭]
Posted
技术标签:
【中文标题】处理如此大的数据需要多少台服务器[关闭]【英文标题】:How many servers needed to handle such a large data [closed] 【发布时间】:2014-11-23 01:39:40 【问题描述】:我们有 100 万个数据集,每个数据集大约 180mb。所以我们的数据总大小约为 185T。每个数据集都是纯 DEL 文件,只有三列。前两列是行键,最后一列是行的值。比如第一列是A,第二列是B,第三列是C。A的值就是数据集的编号,所以A固定在一个数据集中,范围是1-100万。 B 是位置编号,B 的范围可以从 1 到 300 万。
我们计划做的是给定 B 的任意一组非重叠范围,例如从 1-1000、10000-13000、16030-17000....,我们计算每个数据集的值的总和所有这些范围,并以秒为单位返回前 200 个数据集编号(A)。
有没有大数据方面的专业人士知道我们需要多少台服务器来处理这个案例?我的老板相信 10 台服务器(每台 16 核)可以用 50,000 美元的预算来完成。你觉得可行吗?
【问题讨论】:
有点晚了,问题已经结束了,但是如果该数据有些静态或仅在每个文件的末尾添加数据且位置数不断增加,则实际上可以在一秒钟内完成(最多 5 个范围)在单台 PC 上(假设有大约 100MB/秒的 HD(NAS?)读取访问,并且 C 值是正常数字)。这将使用 C/C++ 代码和更优化的数据结构。 【参考方案1】:我认为在这种情况下,Microsoft Azure 等服务可以成为您的朋友。我认为您的预算将进一步使用“按使用付费”服务。您可以决定要使用多少服务器/实例来处理数据。
我确实认为您的数据当前的格式可能是一个小问题。我肯定会考虑使用 Azure 表存储,并首先致力于在这样的服务中获取数据。一旦完成,您现在就拥有了一个更“可查询”和更可靠的数据存储。从那里您可以使用您选择的语言与该数据进行交互。使用表存储,您可以创建分区键。
一旦你有了想要使用的分区,你就可以创建一个服务,你可能会提供一个分区或更可能的分区范围,它会处理它。您将能够调整实例的大小以及应该驱动它们的硬件,有了这样的东西,您就可以确定一个实例处理 x 条记录所需的平均时间。也许你可以写一些关于性能的日志。
一旦您有了日志,就很容易以合理的准确度确定该过程需要多长时间。然后,您可以开始向您的服务添加更多实例,从而开始以更快的速度处理数据。
表存储还设计用于处理大型数据集,因此通过阅读有关此的文档,您会发现许多可以使用的关键功能。
老实说,有很多方法可以解决这个问题,这只是我过去使用过的一种选择,当时它对我有用。
如果这对您来说是一个可行的选择,我会确保将您的数据和服务放在同一个数据中心。虽然我假设您的文件中有某种形式的序列,但您也可以保留占位符来存储您的总和值以供将来使用,并且如果您的数据在未来增长,您可以简单地添加新数据并再次运行您的服务来更新系统。
如果不确保您可以以某种或其他方式保留您的总和值,我不会继续这个旅程,否则如果您将来需要再次获取这些值,您将再次需要从头开始。
我设法找到了一篇关于上述使用大数据的服务的快速文章。也许它可以进一步帮助你。 http://www.troyhunt.com/2013/12/working-with-154-million-records-on.html
【讨论】:
Louis,非常感谢您的详细回答,我已经尝试过亚马逊 AWS 服务,性能可以接受,但费用难以承受。 MS Azure 的价格如何?我的老板更喜欢有一个本地的机器集群,所以他希望我能用 10 台服务器解决这个问题。据我所知,至少对于像 HBase 这样的大数据技术来说不太可能 我发现 MS 的定价很棒,你可以在他们的计算器页面上查看定价,azure.microsoft.com/en-us/pricing/calculator/…。您当然可以在内部服务器上执行此操作,尽管这是我会认真考虑使用适合该问题的语言的实例之一,可能类似于 c++,看起来好像您正在谈论的数据量,每个从长远来看,获得的第二次将很重要。听起来也是一个很棒的项目。我希望你喜欢解决问题的道路。听起来很有趣。 事实上,我忘记了使用今天的编译器和好的代码,使用 C# 几乎可以达到与使用 c++ 相同的结果。对此感到抱歉,有那么一刻,我陷入了旧的 C++ 思维模式。 :) 在这一点上非常同意你的看法。但不幸的是,Hadoop 系统似乎建立在 Java 之上。你知道任何基于 C++ 或 C# 构建的类似系统吗? 确定有一些资源可以查看,blogs.msdn.com/b/data_otaku/archive/2013/08/14/… 甚至 amazedsaint.com/2013/03/…以上是关于处理如此大的数据需要多少台服务器[关闭]的主要内容,如果未能解决你的问题,请参考以下文章