Apache Spark的出现让普通人也具备了大数据及实时数据分析能力。鉴于此,本文通过动手实战操作演示带领大家快速地入门学习Spark。本文是Apache Spark入门系列教程(共四部分)的第一部分。
全文共包括四个部分:
- 第一部分:Spark入门,介绍如何使用Shell及RDDs
- 第二部分:介绍Spark SQL、Dataframes及如何结合Spark与Cassandra一起使用
- 第三部分:介绍Spark MLlib和Spark Streaming
- 第四部分:介绍Spark Graphx图计算
本篇讲解的便是第一部分
关于全部摘要和提纲部分,请登录我们的网站 Apache Spark QuickStart for real-time data-analytics进行访问。
Spark 概述
Apache Spark是一个正在快速成长的开源集群计算系统,正在快速的成长。Apache Spark生态系统中的包和框架日益丰富,使得Spark能够进行高级数据分析。Apache Spark的快速成功得益于它的强大功能和易于使用性。相比于传统的MapReduce大数据分析,Spark效率更高、运行时速度更快。Apache Spark 提供了内存中的分布式计算能力,具有Java、 Scala、Python、R四种编程语言的API编程接口。Spark生态系统如下图所示:
整个生态系统构建在Spark内核引擎之上,内核使得Spark具备快速的内存计算能力,也使得其API支持Java、Scala,、Python、R四种编程语言。Streaming具备实时流数据的处理能力。Spark SQL使得用户使用他们最擅长的语言查询结构化数据,DataFrame位于Spark SQL的核心,DataFrame将数据保存为行的集合,对应行中的各列都被命名,通过使用DataFrame,可以非常方便地查询、绘制和过滤数据。MLlib为Spark中的机器学习框架。Graphx为图计算框架,提供结构化数据的图计算能力。以上便是整个生态系统的概况。
Apache Spark的发展历史
- 最初由加州伯克利大学(UC Berkeley) AMP lab实验室开发并于2010年开源,目前已经成为阿帕奇软件基金会(Apache Software Foundation)的顶级项目。
- 已经有12,500次代码提交,这些提交来自630个源码贡献者(参见 Apache Spark Github repo)
- 大部分代码使用 Scala语言编写。
- Apache Spark的Google兴趣搜索量( Google search interests)最近呈井喷式的增长,这表明其关注度之高(Google广告词工具显示:仅七月就有多达108,000次搜索,比Microservices的搜索量多十倍)
- 部分Spark的源码贡献者(distributors)分别来自IBM、Oracle、DataStax、BlueData、Cloudera……
- 构建在Spark上的应用包括:Qlik、Talen、Tresata、atscale、platf