Spark学习笔记_Day1

1.1 Spark是什么?

Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。

1.2 Spark Vs Hadoop

SparkHadoop
数据共享基于内存基于磁盘
语言Scala语言开发Java编写
组件Spark Core, Streaming, SQL,Milb,GraphXMapreduce,HDFS,HBase
数据处理流处理 (批处理)批处理

1.3 如何选择spark 或者Hadoop

  • Hadoop MapReduce 由于其设计初衷并不是为了满足循环迭代式数据流处理,因此在多并行运行的数据可复用场景(如:机器学习、图挖掘算法、交互式数据挖掘算法)中存 在诸多计算效率等问题。
  • Spark 就是在传统的 MapReduce 计算框 架的基础上,利用其计算过程的优化,从而大大加快了数据分析、挖掘的运行和读写速度,并将计算单元缩小到更适合并行计算和重复使用的 RDD 计算模型。
  • Hadoop 的数据共享是基于磁盘的,每一次的MR操作得到的结果都会写入磁盘,再一次进行MR操作同样从磁盘继续获取数据,所以对于数据的多次操作或分析,Hadoop的效率低。
  • 但是Spark的数据共享是基于内存的,只有第一次读取数据时通过磁盘读入,然后通过函数式编程对数据进行处理,多个作业之间通信通过内存,而hadoop是基于磁盘的。
  • Spark在shuffle(reduceBy,groupBy,join)操作的时候会写入磁盘,所以应该尽量避免使用这些操作,因为shuffle操作是耗时严重。
  • Spark的缓存机制比HDFS的缓存机制高效。
  • 由于spark是基于内存的,所以在实际的生产环境中,由于内存的限制,可能会由于内存资源不足导致Job执行失败,此时,MapReduce会是一个更好的选择。

1.4 Spark核心模块在这里插入图片描述

Spark Core
Spark Core提供了Spark最核心与最基础的功能,Spark其他功能如:Spark SQL,Spark Streaming,GraphX, MLlib 都是在 Spark Core 的基础上进行扩展的
Spark SQL
Spark SQL 是 Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用 SQL 或者 Apache Hive 版本的 SQL 方言(HQL)来查询数据。
Spark Streaming
Spark Streaming 是 Spark 平台上针对实时数据进行流式计算的组件,提供了丰富的处理 数据流的 API。
Spark MLlib
MLlib 是 Spark 提供的一个机器学习算法库。MLlib 不仅提供了模型评估、数据导入等
额外的功能,还提供了一些更底层的机器学习原语
Spark GraphX
GraphX 是 Spark 面向图计算提供的框架与算法库。

本篇主要参考B站尚硅谷大数据技术SparkCore,侵权请联系作者删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值