Spark 数据分析导论-笔记

时光怂恿深爱的人放手 提交于 2019-11-29 21:27:19

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,
    • 那么Spark自带的独立调度器可以让你轻松入门;
  • 而如果已经有了一个装有Hadoop YARN 或Mesos的集群,
    • 通过Spark 对这些集群管理器的支持,
    • 你的应用也同样能运行在这些集群上。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!