Spark笔记

Spark笔记

关于 Spark

Spark 最初由美国加州伯克利大学的AMP实验室于2009年开发,是基于内存计算大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。Spark的主要特点是能够在内存中进行计算,并适用于各种各样原先需要使用不同的分布式平台的场景,包括批处理、迭代计算、交互式查询、流处理。通过在一个统一的框架下支持这些不同的计算,Spark是我们可以简单而低耗地把各种处理流程整合在一起。

特点介绍:

  1. 运行速度快:Spark 使用先进的 DAG (Directed Acyclic Graph,有向无环图) 执行引擎,以支持循环数据流和内存计算,相比于 Hadoop 基于磁盘来进行 MapReduce 运算要快上百倍;
  2. 容易使用:Spark 支持使用 Scala、Java、Python 语言进行编程,简洁的 API 设计有助于用户轻松构建并行程序,且可以通过 Spark Shell 进行交互式编程;
  3. 通用性:Spark 提供了完整而强大的技术栈,包括 SQL 查询、流式计算、机器学习和图算法组件,这些组件可以无缝整合在同一个应用中,足以应对复杂的计算;
  4. 运行模式多样:Spark 可运行于独立的集群模式中,或者运行于 Hadoop 中,也可运行于 Amazon EC2 等云环境中,并且可以访问 HDFS、HBase 以及 Hive 等多种数据源。

Spark vs Hadoop

  1. 表达能力更丰富:Spark 的计算模式也属于 MapReduce,但不局限于 MapReduce 操作,还提供了多种数据集操作类型,编程模型比 MapReduce 更灵活;
  2. 运算效率更优:Spark 提供了内存计算,中间结果直接放到内存中,但 Hadoop 每次在执行 MapReduce 操作时都需要从磁盘读取数据,并在计算完成后又再次将中间结果写入到磁盘中,导致 IO 开销更大,延迟较高;
  3. 先进的任务调度机制:Spark 时基于 DAG 的任务调度执行机制,要优于 MapReduce 的迭代执行机制。
  4. 实际开发更方便:在实际进行开发时,使用 Hadoop 需要编写不少相对底层的代码,不够高效。相对而言,Spark 提供了多种高层次、简洁的 API。更重要的是,Spark 提供了交互式编程环境,可以方便地验证、调整算法。

尽管 Spark 相对于 Hadoop 而言具有较大优势,但 Spark 并不能完全替代 Hadoop,主要用于替代 Hadoop 中的 MapReduce 计算模型。实际上,Spark 已经很好地融入了Hadoop生态圈,并成为其中的重要一员,它可以借助于 YARN 实现资源调度管理,借助于 HDFS 实现分布式存储。此外,Hadoop 可以使用廉价的、异构的机器来做分布式存储与计算,但是,Spark 对硬件的要求稍高一些,对内存与 CPU 有一定的要求。

Spark 生态系统

在实际的应用中,大数据处理主要包括以下三种类型:

  • 复杂的批量数据处理:时间跨度通常在数十分钟到数小时之间;
  • 基于历史数据的交互式查询:时间跨度通常在数十秒到数分钟之间;
  • 基于实时数据流的数据处理:时间跨度通常在数百毫秒到数秒之间。

在这里插入图片描述

相比于其它框架在功能上的单一性, Spark 能同时支持批处理、交互式查询和流数据处理。其生态系统主要包含的核心组件有 Spark coreSpark SQLSpark StreamingMLlibGraphX 等,各个组件的具体功能如下:

  1. **Spark core**:包含 Spark 的基本功能,如内存计算、任务调度、部署模式、故障恢复、存储管理等。Spark 建立在统一的抽象 RDD 之上,使其可以以基本一致的方式应对不同的大数据处理场景;
  2. **Spark SQL**:支持对 Hive 、HBase 等外部数据源的类 SQL 查询,每个数据表被当做一个 RDD ;
  3. **Spark Streaming**:支持高吞吐量、可容错处理的实时流数据处理,其核心思路是将流式计算分解成一系列短小的批处理作业;
  4. **MLlib**:提供了常用机器学习算法的实现,包括聚类、分类、回归、协同过滤等,降低了机器学习的门槛;
  5. **GraphX**:支持在 Spark 中进行图计算,可认为是 Pregel 在 Spark 上的重写及优化,GraphX 性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值