Apache Spark概述

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

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值