Why Apache Spark?

我们生活在“大数据”的时代,其中以各种类型的数据以前所未有的速度生成数据,而这种速度似乎只是在天文学上加速。该数据可以广泛地分类为交易数据,社交媒体内容(例如文本,图像,音频和视频)以及来自仪器化设备的传感器馈送。

但是人们可能会问为什么要重视这一点。原因是:“数据是有价值的,因为它可以做出决定”。

直到几年前,只有少数有技术和资金的公司投资存储和挖掘大量数据才能获得宝贵的见解。不过,雅虎在2009年开放Apache Hadoop的时候,一切都发生了变化。这是一个破坏性的变化,大大降低了大数据处理的水平。因此,许多行业,如医疗保健,基础设施,金融,保险,远程信息处理,消费者,零售,营销,电子商务,媒体,制造和娱乐等行业已经大大受益于Hadoop上的实际应用。

Apache Hadoop提供两个主要功能:

  • HDFS是使用水平可扩展的商品硬件廉价地存储大量数据的容错方式。
  • Map-Reduce,为挖掘数据提供编程结构并获得洞察力。

下面的图1说明了如何通过一系列Map-Reduce步骤处理数据,其中Map-Reduce步骤的输出在典型的Hadoop作业中输入到下一个。

中间结果存储在磁盘上,这意味着大多数Map-Reduce作业都是I / O绑定的,而不是计算上的约束。对于诸如ETL,数据整合和清理等用例,处理时间并不是很大的问题,但是处理时间很重要的其他类型的大数据用例也不是问题。这些用例如下:

  1. 流数据处理进行近实时分析。例如,点击流数据分析来制作视频推荐,这增强了用户参与度。我们必须在准确性和处理时间之间进行权衡。
  2. 大型数据集的交互式查询,因此数据科学家可以对数据集进行自组织查询。

下图2显示了Hadoop如何发展成为几种技术的生态系统,为这些用例提供了非常专门的工具。

虽然我们喜欢Hadoop生态系统中的工具之间的丰富选择,但是使用生态系统繁琐的挑战有几个:

  1. 需要一种不同的技术方案来解决每种类型的用例,因为一些解决方案在不同的用例中不可重用。
  2. 生产力需要熟练掌握多项技术
  3. 某些技术面临版本兼容性问题
  4. 它不适合并行作业中更快的数据共享需求。

这些是Apache Spark解决的挑战!Spark是闪电式快速内存集群计算平台,具有统一的解决方案,解决了批处理,流式传输和交互式用例,如图3所示。