Spark 数据分析导论-笔记
Spark Core程序员
- Spark Core 实现了Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。
- Spark Core 中还包含了
- 对弹性分布式数据集(resilient distributed dataset,简称RDD)的API 定义。
- RDD 表示分布在多个计算节点上能够并行操做的元素集合,
- 是Spark 主要的编程抽象。
- Spark Core 提供了建立和操做这些集合的多个API。
Spark SQL算法
- Spark SQL 是Spark 用来操做结构化数据的程序包。
- 使用SQL或者Apache Hive 版本的SQL 方言(HQL)来查询数据。
- Spark SQL 支持多种数据源,好比Hive 表、Parquet 以及JSON 等。
- 除了为Spark 提供了一个SQL 接口,
- Spark SQL 还支持开发者将SQL 和传统的RDD 编程的数据操做方式相结合,
- 不管是使用Python、Java 仍是Scala,
- 开发者均可以在单个的应用中同时使用SQL 和复杂的数据分析。
- 经过与Spark所提供的丰富的计算环境进行如此紧密的结合,
- Spark SQL 得以从其余开源数据仓库工具中脱颖而出。
- Spark SQL 是在Spark 1.0 中被引入的。
Spark Streaming编程
- Spark Streaming 是Spark 提供的对实时数据进行流式计算的组件。
- 好比生产环境中的网页服务器日志,
- 或是网络服务中用户提交的状态更新组成的消息队列,都是数据流。
- SparkStreaming 提供了用来操做数据流的API,
- 而且与Spark Core 中的RDD API 高度对应。
- 这样一来,程序员编写应用时的学习门槛就得以下降,
- 不管是操做内存或硬盘中的数据,
- 仍是操做实时数据流,
- 程序员都更能应对自如。
- 从底层设计来看,Spark Streaming 支持与Spark Core 同级别的容错性、吞吐量以及可伸缩性。
MLlib服务器
- Spark 中还包含一个提供常见的机器学习(ML)功能的程序库,叫做MLlib。
- MLlib 提供了不少种机器学习算法,
- 包括分类、回归、聚类、协同过滤等,
- 还提供了模型评估、数据导入等额外的支持功能。
- MLlib 还提供了一些更底层的机器学习原语,
- 全部这些方法都被设计为能够在集群上轻松伸缩的架构。
GraphX网络
- GraphX 是用来操做图(好比社交网络的朋友关系图)的程序库,
- 与Spark Streaming 和Spark SQL 相似,
- GraphX 也扩展了Spark 的RDD API,
- 能用来建立一个顶点和边都包含任意属性的有向图。
- GraphX 还支持针对图的各类操做
- (好比进行图分割的subgraph 和操做全部顶点的mapVertices),
- 以及一些经常使用图算法(好比PageRank和三角计数)。
集群管理器架构
- 就底层而言,Spark 设计为能够高效地在一个计算节点到数千个计算节点之间伸缩计算。
- 为了实现这样的要求,同时得到最大灵活性,
- Spark 支持在各类集群管理器(clustermanager)上运行,
- 包括Hadoop YARN、Apache Mesos,以及Spark 自带的一个简易调度器,叫做独立调度器。
- 若是要在没有预装任何集群管理器的机器上安装Spark,
- 而若是已经有了一个装有Hadoop YARN 或Mesos的集群,
- 经过Spark 对这些集群管理器的支持,
- 你的应用也一样能运行在这些集群上。
欢迎关注本站公众号,获取更多信息