初识Spark

1.Spark是什么?

(1)Spark,是一种快速通用的大数据计算框架,正如传统大数据技术 Hadoop的MapReduce、Hive引擎,以及Storm流式实时计算引擎等。

(2)Spark包含了大数据领域常见的各种计算框架:比如SparkCore用于离线计算,SparkStreaming用于实时流式计算,SparkSQL用于交互式查询,SparkMLib用于机器学习,SparkGraphx用于图计算。

(3)Spark主要用于大数据的计算,而Hadoop主要用于大数据的存储(比如HDFS、HIve、HBase等),以及资源调度(yarn)

2,为什么要用Spark?

(1)速度快:Spark主要基于内存计算,部分基于磁盘(比如Shuffle)

为什么内存比磁盘计算要快?

大规模的数据处理最大的难点就是:无法全内存计算

因为处理的数据大,所以必须对磁盘进行处理,但是磁盘计算是非常低效的,所以处理的时候就要仔细的考虑算法

寻址:

内存是通过电子工作的,所以搜索速度和物理结构无关,进行寻址时只需要微秒级别既可以

磁盘在寻址时需要1,移动磁头2,旋转磁盘  因为磁盘旋转的速度有限,所以寻址消耗毫秒别时间

*操作系统会将一个连续的数据存放在一起(win一般是4KB),这样磁盘旋转一周读取的数据就会多些,从而提高效率

传输速度:

内存和硬盘的数据都会被读到cpu的缓存中,但是从内存到缓存和从硬盘到缓存的传输速度是差别很大的

内存到缓存的速度大概有7-8GB/秒,而磁盘到缓存的速度大概只有60MB/秒

因此内存计算和磁盘计算的速度差可以达到一百万倍以上(理想情况下)

引用文章:https://blog.csdn.net/larrylgq/article/details/7440808 
(2)易用性好:Spark基于RDD的计算模型,比Hadoop的Mapreduce计算模型易于理解且支持使用Scala、java、ptyhon和R语言进行编程。

(3)通用性强:Spark提供了SparkRDD、SparkSQL、SparkStreaming、SparkMLilb、SparkGraphx等技术组建,他可以一站式地完成大数据领域的离线处理、交互式查询、流式计算、机器学习、图计算等常见的任务。

(4)易集成:可以独立在集群模式中运行,也可以跟hdfs、hive、HBase负责存储,YARN负责资源调度。

3.Spark能代替Hadoop吗?

是不可能代替的,但是可以替代一部分,比如Hadoop的计算框架MapReduce或Hive查询引擎(底层是继续MapReduce计算的)

虽然Spark具有计算能力,但不具有存储能力,这里是Spark的一大短板,同时也引出了一个问题,Spark是基于内存迭代计算的,当真正面对超大量的数据时,就会出各种各样的问题,最为常见的就是OOM,这时需要各种调用来保障作业的继续运作。Hadoop的MapReduce是基础磁盘计算的,速度虽然慢但是他比较稳定。

4.Spark基本工作原理

如图每个红框所示,每一批节点上的数据实际上就是一个 RDD,因为是分布式,所以数据都散落在一批节点上,每个节点都存储了 RDD 的部分 partition 数据。操作完成1中的任务后,处理完成的数据会移到下一批节点的内存中,如1->2->3数据迭代计算,将最终的计算结果输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值