2017-06-02 68 views
0

想知道,是否有某个问题列表要问自己,以了解Spark是否是正确的工具?我如何知道Apache Spark是否是正确的工具?

我再次花了一周的时间用Apache Spark实现POC,以便比较纯Python代码的性能,当我看到1/100比率(赞成python)时,我感到莫名其妙。

我知道Spark是一个“大数据”工具,每个人都会说“Spark是处理TB/PB数据的正确工具”,但我认为这不是唯一需要考虑的事情。

简而言之,我的问题是,当给出小数据作为输入时,我怎么能知道计算是否会消耗足够的时间,以便Spark实际上可以改进事物?

+0

如果数据很小,火花是过量的 – eliasah

回答

0

我不知道如果有这样一个名单,但如果出现了,第一个问题很可能是

请问您的数据适合在一台机器?

如果答案是'是',则不需要Spark。

Spark被设计用于处理大量数据,使其无法作为Hadoop的替代方法以容错方式处理。

与单台机器上的传统工具相比,存在大量开销(如容错和网络),这些开销与分布式方式相关,导致显着减速。

由于Spark 可以将用作小数据集上的并行处理框架,并不意味着它应该以这种方式使用。通过使用Python,并使用线程并行处理,您将获得更快的结果和更低的复杂性。

如果处理过程复杂且耗时且遇到基础结构问题的可能性足够高并且失败会导致再次启动时,Spark必须处理不适合单个计算机的数据集时才具有优势从头开始。

将Spark与本地Python进行比较就像比较机车和自行车。一辆自行车快速而灵活,直到你需要从国内一端运输几吨钢铁到另一端:然后 - 不那么有趣。

+0

你说如果我的数据适合在一台机器上,那么Spark并不是正确的工具。但是,举个例子,如果我不得不对这些小数据做数十亿的计算。在那种情况下,火花会有用吗? –

+0

好问题,我只关注速度。在这种情况下,Spark可以带来的主要好处是容错。即使这样,它也将取决于计算的性质,即可以将处理分解成检查点,在发生故障的情况下重新启动检查点。从你在问题和评论中所说的话,我觉得Spark会是一个不成熟的优化。 – ImDarrenG

+0

是的,我的情况并不需要容错。速度是主要目标,但似乎没有足够的计算值得Spark Spark的价值 –

相关问题