Spark概述
Spark是一个用于大规模数据处理的统一计算引擎。
spark的特点
1快速
2 易用性 ØSpark支持使用Scala、Python、Java及R语言快速编写应用。同时Spark提供超过80个高阶算子,使得编写并行应用程序变得容易,并且可以在Scala、Python或R的交互模式下使用Spark。
3 通用性 ØSpark可以与SQL、Streaming及复杂的分析良好结合。Spark还有一系列的高级工具,包括Spark SQL、MLlib(机器学习库)、GraphX(图计算)和Spark Streaming(流计算),并且支持在一个应用中同时使用这些组件。
4 随处运行 Ø用户可以使用Spark的独立集群模式运行Spark,也可以在EC2(亚马逊弹性计算云)、Hadoop YARN或者Apache Mesos上运行Spark。并且可以从HDFS、Cassandra、HBase、Hive、Tachyon和任何分布式文件系统读取数据。
5 代码简洁
Spark的生态圈
Ø
Spark Core
Spark的核心,提供底层框架及核心支持。
Ø
BlinkDB
一个用于在海量数据上进行交互式SQL查询的大规模并行查询引擎,允许用户通过权衡数据精度缩短查询响应时间,数据的精度将被控制在允许的误差范围内。
Ø
Spark SQL
可以执行SQL查询,支持基本的SQL语法和HiveQL语法,可读取的数据源包括Hive、HDFS、关系数据库(如MySQL)等
了解Spark架构
基本组件:
Ø
Cluster
Manager
资源管理器,即在集群上获取资源的外部服务,目前主要有Standalone(Spark原生的资源管理器)和YARN(Hadoop集群的资源管理器)。
Ø
SparkWorker
集群中任何可以运行应用程序的节点,运行一个或多个Executor进程。
Ø
Cluster
Manager
资源管理器,即在集群上获取资源的外部服务,目前主要有Standalone(Spark原生的资源管理器)和YARN(Hadoop集群的资源管理器)。
Ø
SparkWorker
集群中任何可以运行应用程序的节点,运行一个或多个Executor进程。
了解Spark核心数据集RDD
Ø
Spark
RDD
转换和操作示例

了解Spark核心原理
宽依赖与窄依赖
Ø
窄依赖:表现为一个父
RDD
的分区对应于一个子
RDD
的分区或者多个父
RDD
的分区对应于一个子
RDD
的分区。
Ø
宽依赖:表现为存在一个父
RDD
的一个分区对应一个子
RDD
的多个分区。
•
