什么是Apache Spark?这篇文章带你从零基础学起

Apache Spark是一个开源的、高性能的处理引擎,提供MapReduce的灵活性和速度,适用于处理半结构化、结构化、流式数据,以及机器学习和数据科学任务。Spark以其DataFrame API和库如MLlib、GraphX和Spark Streaming,支持多种编程语言,包括Java、Scala、Python、R和SQL。其DAG调度器和Catalyst优化器实现了高效的查询执行和内存管理,而Tungsten项目进一步提升了性能。Spark可在本地、集群和云环境中运行,支持多种数据源。
摘要由CSDN通过智能技术生成

640?wx_fmt=gif

导读:Apache Spark是一个强大的开源处理引擎,最初由Matei Zaharia开发,是他在加州大学伯克利分校的博士论文的一部分。Spark的第一个版本于2012年发布。


Apache Spark是快速、易于使用的框架,允许你解决各种复杂的数据问题,无论是半结构化、结构化、流式,或机器学习、数据科学。它也已经成为大数据方面最大的开源社区之一,拥有来自250多个组织的超过1000个贡献者,以及遍布全球570多个地方的超过30万个Spark Meetup社区成员。


在本文中,我们将提供一个了解Apache Spark的切入点。我们将解释Spark Job和API背后的概念。


作者:托马兹·卓巴斯(Tomasz Drabas),丹尼·李(Denny Lee)

如需转载请联系大数据(ID:hzdashuju)


640?wx_fmt=png



01 什么是Apache Spark


Apache Spark是一个开源的、强大的分布式查询和处理引擎。它提供MapReduce的灵活性和可扩展性,但速度明显更高:当数据存储在内存中时,它比Apache Hadoop快100倍,访问磁盘时高达10倍。


Apache Spark允许用户读取、转换、聚合数据,还可以轻松地训练和部署复杂的统计模型。Java、Scala、Python、R和SQL都可以访问 Spark API。


Apache Spark可用于构建应用程序,或将其打包成为要部署在集群上的库,或通过笔记本(notebook)(例如Jupyter、Spark-Notebook、Databricks notebooks和Apache Zeppelin)交互式执行快速的分析。


Apache Spark提供的很多库会让那些使用过Python的pandas或R语言的data.frame 或者data.tables的数据分析师、数据科学家或研究人员觉得熟悉。非常重要的一点是,虽然Spark DataFrame会让pandas或data.frame、data.tables用户感到熟悉,但是仍有一些差异,所以不要期望过高。具有更多SQL使用背景的用户也可以用该语言来塑造其数据。


此外,Apache Spark还提供了几个已经实现并调优过的算法、统计模型和框架:为机器学习提供的MLlib和ML,为图形处理提供的GraphX和GraphFrames,以及Spark Streaming(DStream和Structured)。Spark允许用户在同一个应用程序中随意地组合使用这些库。


Apache Spark可以方便地在本地笔记本电脑上运行,而且还可以轻松地在独立模式下通过YARN或Apache Mesos于本地集群或云中进行部署。它可以从不同的数据源读取和写入,包括(但不限于)HDFS、Apache Cassandra、Apache HBase和S3:


640?wx_fmt=png

▲资料来源:Apache Spark is the smartphone of Big Data

http://bit.ly/1QsgaNj



02 Spark作业和API


在本节中,我们将简要介绍Apache Spark作业(job)和API


1. 执行过程


任何Spark应用程序都会分离主节点上的单个驱动进程(可以包含多个作业),然后将执行进程(包含多个任务)分配给多个工作节点,如下图所示:


640?wx_fmt=png


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值