MR和Hadoop已被证明是高性能处理海量数据的最佳解决方案。然而,MR在迭代计算中性能不足:多个MR作业之间的输出必须被写入HDFS。在单个MR作业中,因为MR框架存在的一些缺点也存在性能不足。

1 Apache Spark是什么?

  • 一个快速的企业级大规模数据处理引擎,可以与Apache Hadoop进行互操作
  • 用Scala编写的。Scala是一种兼顾面向对象和函数式的编程语言,在JVM中运行
  • Spark让应用程序在处理过程中能可靠地在内存中分发数据。其能够让应用程序避免低效率磁盘I/O,以内存速度进行计算。
  • 相比MR,Spark程序在内存储存模式下执行的速度快100倍,在磁盘存储模式下速度快10倍
  • 通过Scala、python和R的交互式shell,为java、python和R语言提供本地支持
  • Spark提供一系列的库
  • Spark可以运行在Hadoop、Mesos、standalone集群管理器,内部硬件系统或云计算平台上

Spark是一个计算引擎,可以把数据存储在内存里或Tachyon上进行处理。Spark具有从存储在HDFS或Hadoop API支持的其他存储系统中的任何文件创建分布式数据集的能力。

Spark不是Hadoop,不需要Hadoop运行它。Spark支持文本文件、序列文件、Avro、Parquet和其他任何Hadoop输入格式。

2 MapReduce的问题

  • MR为每个映射器和哈建起创建单独的JVM,启动JVM需要相当长的时间
  • MR代码需要大量样板代码。程序员要从映射(map)化简(reduce)角度设计业务问题,很难开发。
  • MR作业在每个作业之间将数据写入磁盘,不适合迭代处理
  • 更高级别的抽象能为MR作业提供更好的编程手段。
  • MR也没有理想API

MR速度慢是因为MR作业中每个作业都把数据存储在磁盘上,对同一数据集的多查询会分别读取数据,产生大量磁盘读写。

Spark把中间数据存储在内存中,根据需要多次重复使用,提高了性能。

3 Spark的架构

Spark的架构组件有 Spark Core,Spark SQL,Dataset、DataFrame、Spark Streaming、Structured Streaming、Mlib、GraphX、SparkR

Apache Spark概述相关推荐

  1. Apache Spark 2.2.0 中文文档 - 概述 | ApacheCN

    Spark 概述 Apache Spark 是一个快速的, 多用途的集群计算系统. 它提供了 Java, Scala, Python 和 R 的高级 API,以及一个支持通用的执行图计算的优化过的引擎 ...

  2. 大规模数据处理Apache Spark开发

    大规模数据处理Apache Spark开发 Spark是用于大规模数据处理的统一分析引擎.它提供了Scala.Java.Python和R的高级api,以及一个支持用于数据分析的通用计算图的优化引擎.它 ...

  3. Apache Spark 2.2.0 中文文档 - GraphX Programming Guide | ApacheCN

    GraphX Programming Guide 概述 入门 属性 Graph 示例属性 Graph Graph 运算符 运算符的汇总表 Property 运算符 Structural 运算符 Joi ...

  4. Spark之Spark概述

    Spark之Spark概述 什么是Spark Spark内置项目介绍 Spark特点 Spark的用户和用途 1. 什么是Spark Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生 ...

  5. 【Spark】一条 SQL 在 Apache Spark 之旅(上)

    1.概述 转载学习加深印象:一条 SQL 在 Apache Spark 之旅(上) Spark SQL 是 Spark 众多组件中技术最复杂的组件之一,它同时支持 SQL 查询和 DataFrame ...

  6. spark学习-52-Spark的org.apache.spark.SparkException: Task not serializable

    1.概述 报错这个一般是org.apache.spark.SparkException: Task not serializable 17/12/06 14:20:10 INFO MemoryStor ...

  7. 多云时代下数据管理技术_建立一个混合的多云数据湖并使用Apache Spark执行数据处理...

    多云时代下数据管理技术 Azure / GCP / AWS / Terraform / Spark (Azure/GCP/AWS/Terraform/Spark) Five years back wh ...

  8. spark 概述与安装

    概述 spark 是一个快速的通用集群计算系统.它提供了丰富的高水平的api供java,scala和python调用. 安装 到官网下载最新版本spark-1.3.1 http://spark.apa ...

  9. 大数据技术之Spark(一)——Spark概述

    大数据技术之Spark(一)--Spark概述 文章目录 前言 一.Spark基础 1.1 Spark是什么 1.2 Spark VS Hadoop 1.3 Spark优势及特点 1.3.1 优秀的数 ...

最新文章

  1. 【网络流24题】魔术球问题(最大流)
  2. 深入浅出SQL(三)——表的规范化
  3. python treeview底部加个按钮_Python爬取京东商品信息(GUI版本)
  4. 前端学习(3209):react中类中方法的this指向
  5. 前端学习(752):全局变量和局部变量
  6. Pytorch(5)-梯度反向传播
  7. 三星核S5PV210AH-A0 SAMSUNG
  8. STM32F103基本定时器使用
  9. Mysql中有哪些数据类型(建议收藏)
  10. 计算机更新过后cad,CAD2022更新了什么?具有哪些新功能?
  11. 开发工具-Hijson
  12. 资深渗透测试工程师的渗透技巧总结(67个Tips)
  13. 平时的工作如何体现一个人的技术深度?
  14. Hypervisor
  15. zookeeper windows7下集群搭建
  16. 记录自己三天速成使用django+html制作国内疫情可视化平台的过程(一)
  17. 字体图标 fa fa html5,Font Awesome 4.2.0的所有图标参考
  18. duck java_编程语言中的 DUCK TYPING
  19. 打印技术之打印机状态监控
  20. 魔妆镜在电商直播中的应用

热门文章

  1. STL中map用法详解
  2. python 爬取今日头条热点新闻
  3. 单元测试之带你搞懂Mockito使用
  4. JDBC连接失败java.sql.SQLException: ...ClassCastException: BigInteger cannot be cast to Long
  5. 定个目标|建立自己的技术知识体系
  6. 如何把一个运行完好的Kafka搞崩溃
  7. 一文简述FFmpeg
  8. 视频会议未来趋势不完全预测
  9. 周昌印:忘记技术 从用户与市场考虑问题
  10. Puffer:专注拥塞控制、带宽预测和ABR