说明
数据产品经理教程 正在编写中,欢迎大家加微信 gairuo123 (备注:数据产品教程) 提供意见、建议、纠错、催更。应大家要求,作者开办数据产品和数据分析培训班,详情 数据产品经理培训 / 数据分析培训。
Apache Spark 是专为大规模数据处理而设计的快速通用计算引擎,在数据挖掘和机器学习领域有着广泛的应用,现在也已形成一个高速发展、应用广泛的生态系统。
2009 年,Spark 诞生于加州大学伯克利分校的 AMP 实验室(the Algorithms, Machines and People lab),并于 2010 年开源。2013 年,Spark 捐献给阿帕奇软件基金会(Apache Software Foundation),并于 2014 年成为 Apache 顶级项目。如今,十年光景已过,Spark 成为了大大小小企业与研究机构的常用工具之一,依旧深受不少开发人员的喜爱。
以下为 Spark 生态图:
Spark 使用简练优雅的 Scala 语言编写,基于 Scala 提供了交互式编程体验,同时提供多种方便易用的 API。Spark 遵循“一个软件栈满足不同应用场景”的设计理念,逐渐形成了一套完整的生态系统(包括 Spark 提供内存计算框架、SQ 即席查询(Spark SQL)、流式计算(Spark Streaming)、机器学习(MLlib)、图计算(Graph X)等),Spark 可以部署在yarn资源管理器上,提供一站式大数据解决方案,可以同时支持批处理、流处理、交互式查询。
MapReduce 计算模型延迟高,无法胜任实时、快速计算的需求,因而只适用于离线场景,Spark 借鉴 MapReduce 计算模式,但与之相比有以下几个优势(快、易用、全面):
Spark作为计算框架只是取代了Hadoop生态系统中的MapReduce计算框架,它任需要HDFS来实现数据的分布式存储,Hadoop中的其他组件依然在企业大数据系统中发挥着重要作用。
虽然 Spark 很快,但现在在生产环境中仍然不尽人意,无论扩展性、稳定性、管理性等方面都需要进一步增强;同时 Spark 在流处理领域能力有限,如果要实现亚秒级或大容量的数据获取或处理需要其他流处理产品。
Cloudera 旨在让Spark流数据技术适用于 80% 的使用场合,就考虑到这一缺陷,在实时分析(而非简单数据过滤或分发)场景中,很多以前使用 S4 或 Storm 等流式处理引擎的实现已经逐渐被 Kafka+Spark Streaming代替。
Hadoop 现在分三块 HDFS/MR/YARN,Spark 的流行将逐渐让 MapReduce、Tez 走进博物馆;Spark 只是作为一个计算引擎比MR的性能要好,但它的存储和调度框架还是依赖于 HDFS/YARN,Spark 也有自己的调度框架,但不成熟,基本不可商用。
更新时间:2021-08-23 23:01:02 标签:大数据 spark