【小牛原创】Spark SQL 从入门到实战 -- spark sql 1.6版本相关api
【小牛原创】Spark SQL 从入门到实战 -- 概述
Spark Streaming:大规模流式数据处理
spark RDD 相关需求
spark RDD 高级应用
Spark手册 - load&save
Spark手册 - debug
Spark手册 - cache&checkpoint
Spark手册 - RDD Action API
Spark手册 - Partitioner源码
Spark手册 - RDD Transformation API
Spark手册 - RDD的依赖关系
Spark手册 - RDD入门
Spark手册 - 远程debug
Spark手册 - 在IDEA中编写WordCount程序(3)
Spark手册 - 在IDEA中编写WordCount程序(2)
Spark手册 - 在IDEA中编写WordCount程序(1)
Spark手册 - 执行Spark程序
Spark手册 - 集群安装
20页PPT|视频类网站大数据生态 Spark在爱奇艺的应用实践
Spark机器学习入门实例——大数据集(30+g)二分类
Spark官方文档中文翻译:Spark SQL 之 Data Sources
使用Spark MLlib来训练并服务于自然语言处理模型
Spark知识体系完整解读
案例 :Spark应用案例现场分享(IBM Datapalooza)
最全的Spark基础知识解答
Spark在GrowingIO数据无埋点全量采集场景下的实践
Apache Spark探秘:三种分布式部署方式比较
Apache Spark探秘:多进程模型还是多线程模型?
Apache Spark探秘:实现Map-side Join和Reduce-side Join
Apache Spark探秘:利用Intellij IDEA构建开发环境
spark on yarn的技术挑战
Apache Spark学习:将Spark部署到Hadoop 2.2.0上
Hadoop与Spark常用配置参数总结
基于Spark Mllib,SparkSQL的电影推荐系统
spark作业调优秘籍,解数据倾斜之痛
Spark入门必学:预测泰坦尼克号上的生还情况
小牛学堂浅谈基于Spark大数据平台日志审计系统的设计与实现
【Hadoop Summit Tokyo 2016】使用基于Lambda架构的Spark的近实时的网络异常检测和流量分析
Spark编程环境搭建经验分享
Spark技术在京东智能供应链预测的应用
spark中textFile、groupByKey、collect、flatMap、map结合小案例
Spark中DataFrame的schema讲解
深度剖析Spark分布式执行原理
【Spark Summit East 2017】从容器化Spark负载中获取的经验
内存分析技术哪家强?Spark占几何
Spark系列之一:Spark,一种快速数据分析替代方案
6种最常见的Hadoop和Spark项目
Hadoop vs Spark
Hadoop与Spark常用配置参数总结
Spark RPC通信层设计原理分析
Spark Standalone架构设计要点分析
Spark UnifiedMemoryManager内存管理模型分析
网易的Spark技术分享

Spark教程

于2016-10-22由小牛君创建

分享到:

Apache Spark是一个集群计算设计的快速计算。它是建立在Hadoop MapReduce之上,它扩展了 MapReduce 模式,有效地使用更多类型的计算,其中包括交互式查询和流处理。这是一个简单的Spark教程,介绍了Spark核心编程的基础知识。


工业公司广泛的使用 Hadoop 来分析他们的数据集。其原因是,Hadoop框架是基于简单的编程模型(MapReduce),并且它使用的计算解决方案,是可扩展的,柔性的,容错和低成本。 在这里,主要关心的是在查询之间等待时间和等待时间来运行程序处理大型数据集的速度。

Spark由Apache软件基金会对于加快Hadoop计算软件的过程。

作为对一个共同的信念,Spark不是 Hadoop 的修改版本,不依赖于Hadoop,因为它有自己的集群管理。Hadoop仅仅是实现Spark的方式之一。

Spark使用Hadoop的方式有两种- 一种是存储和第二个是处理。由于Spark有自己的集群管理计算,所以一般它使用Hadoop只有存储的目的。

Apache Spark

Apache Spark是一个快速的集群计算技术,设计用于快速计算。它是基于Hadoop MapReduce和它扩展了MapReduce模型,以有效地将其用于多种类型的计算,其中包括交互式查询和流处理。Spark的主要特征是其内存集群计算,增加的应用程序的处理速度。

Spark旨在涵盖广泛的工作负载,如批量应用,迭代算法,交互式查询和分流。除了支持所有这些工作负载在各自的系统中,它减少了维护单独工具的管理负担。

Apache Spark的演变

Spark是在加州大学伯克利分校的AMPLab由马太·扎哈里亚在2009年开发的Hadoop子项目之一。它在2010年开源,在BSD许可下。它在2013年捐赠给Apache Software 基金,现在的Apache Spark已经在2014年2月成为Apache的顶级项目。

Apache Spark特色

Apache Spark有以下特点。

  • 速度 − Spark有助于运行Hadoop集群应用,在存储器高达100倍更快的速度,以及10倍的速度在磁盘上运行时。这可以通过减少读/写操作数到磁盘。它存储在内存中的中间处理数据。

  • 支持多语言 − Spark 提供了Java, Scala, Python的内置API。因此,可以使用不同语言来写应用程序。Spark 配备了80个高层次的操作符进行互动查询。

  • 高级分析 − Spark不只支持“Map”和“reduce”。它还支持SQL查询,流数据,机器学习(ML),和图形的算法。

Spark在Hadoop上建立

下图显示了Spark 如何使用Hadoop组件的三种方式来构建。

有三种方法部署Spark ,如下面所解释。

  • 单机版 − Spark独立部署是指Spark占据在HDFS之上(Hadoop分布式文件系统)并将空间分配给HDFS。在这里,Spark和MapReduce将并列覆盖所有Spark的作业集群。

  • Hadoop Yarn − Hadoop Yarn部署方式,简单地说,spark运行在Yarn没有任何必要预安装或使用root访问权限。它有助于Spark融入Hadoop生态系统和Hadoop堆栈。它允许在其它部件叠上层的顶部上运行。

  • Spark 在 MapReduce (SIMR) − Spark在MapReduce的用于启动spark作业,除了独立部署。通过SIMR,用户可以启动Spark和使用Shell,而不需要任何管理权限。

Spark组件

下图说明了Spark的不同组成部分。

Apache Spark 核心

Spark核心是底层一般执行引擎,所有其他的功能都是建立在Spark的平台之上。 它提供了内存计算和引用数据集在外部存储系统。

Spark SQL

星火SQL是引入了一种名为SchemaRDD一个新的数据抽象,它提供了结构化和半结构化数据的支持,它是Spark核心的组成部分。

Spark 数据流

Spark数据流充分利用Spark核心快速调度能力进行流分析。它摄取的数据在小型分批进行RDD(弹性分布式数据集),对这些小批量的数据转换。

MLlib (机器学习库)

MLlib是一个分布式的机器学习框架的分布式存储器为基础的Spark架构。它根据基准,由MLlib开发商对交替最小二乘(ALS)实现完成。Spark MLlib 9倍快于Hadoop基于磁盘的版本(前Mahout中获得了星火接口)Apache Mahout 。

GraphX

GraphX是Spark顶部上的分布式图形处理框架。它提供了用于表达图表计算,并可以通过使用预凝胶抽象API来建模用户定义的图形的API。它还提供了这种抽象的优化运行。