1.首先了解一下saprk,其本质是一个计算引擎。

2.定义:大规模数据处理的计算引擎。

3.速度:相比于hadoop内置的计算引擎(可以理解为hadoop里面的mapreduce)

从官方文档可知:

大数据计算引擎简介---------------spark

4.可供交互的交互语言技术:

官网介绍如下:

大数据计算引擎简介---------------spark

根据spark源码可以得知:

大数据计算引擎简介---------------spark

根据源码可以得知源码是支持这些接口的,由此可以得知,是支持Scala,java,pytho,r语言,也支持sql进行数据库中间件的交互。

5.依赖环境其中spark本身是一个引擎,可以理解为一个计算机框架,因此需要一定的存储机构进行依托,官方文档介绍如下:

大数据计算引擎简介---------------spark

 

hadoop可以理解为大数据整个组件当中最重要的组件,没有之一,通过配置hads.site.xml文件来确定,hive,HABSE本身也是需要依托hadoop来进行运行的,详情请看本人其他博客。

总结:hadoop,hive以及hbase均可以理解为数据源。

特点:

Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

优势:CPU存在内存调度,因此在内存里面进行I/O内存调度速度,会比直接从磁盘调度的速度要快很多,CPU与内存速度不匹配,CPU速度比内存快一些,内存速度比磁盘要稍微快一些,CPU速度比内存又快一些,为了增加命中率,又增加了一个cache,高速缓存的东西,进行CPU的命中率进行提高。

众所周知hadoop中的hads是作为存储进行相关使用,每次都需要从hadoop中(磁盘)中去读取数据,因此速度就会慢很多,名单是如果从内存中进行调度的话,数据的读取速度就会很快,主要是通过.cache()以及持久化函数来进行实现的。

具体验证如图:

大数据计算引擎简介---------------spark

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: