MapReduce,hive, sparkcore, sparksql,

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010916338/article/details/82789295

一,MapReduce–>Hive–>spark(sparkcore, sparksql, sparkstreaming)

MapReduce
(1)分布式计算框架,只能用Java进行开发。
Hive
(1)由于MR只有Java程序员才能开发,但是程序员大部分都会sql, 所以衍生出类sql语法HQL(Hive Query Language).
Hive其实是基于MR的一种分布式计算框架, 在MR上包了一层壳, 底层仍然是MR。
sparkcore
(1)MR的shuffle过程中数据要频繁的落地到磁盘中会大大的影响性能, spark设计的目的就是为了解决该问题, spark完全基于内存进行计算,数据不落地, 虽然占用能存很高但是大大提高了效率, 可以达到MR的 10~100倍。
(2)核心数据结构为RDD(弹性式分布数据集)。
(3)spark支持多种语言开发:java, python, scala, R等。
(4)Scala是spark的开发语言,与spark的兼容性最好。java语句冗长,数据分析师不熟悉java。spark的R语言不完整。python是目前机器学习库集成最好的语言, 库比较全面。
sparksql
(1)SparkSql的前身叫做Shark. Shark是在hive的基础上替换了其中的计算引擎, 从MR换成spark从而提升了效率但是之后 为了减少对hive的依赖 spark的设计者 放弃了Shark重新开发了SparkSql. 由于底层的Spark比mr的效率要高很多,所以SparkSql的效率也要比hive高很多。
(2)SparkSql中有一个核心的数据结构叫做DataFrame 本质上是对RDD的一个封装, 其中采用类似表的结构来存储数据。
(3)DataFrame比RDD运行时间少, 效率高。
sparkstreaming
(1)Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力,以吞吐量高和容错能力强著称。
(2)SparkStreaming 将输入的数据 按照时间为单位进行切片, 切出一个个的批, 称之为DStream 而DStream本质上就是Spark中的RDD 对DStream的处理最终会被翻译成对底层RDD的处理。
(3)SparkStreaming在处理DStream数据时 是按照串行化的方式进行处理的。这也就意味着上一个DStream在当前算子中未处理完成时 下一个DStream即使到来也要阻塞等待。
(4)相对于Storm SparkStreaming的优势并不体现在低延时, 而是在高吞吐量上有自己独特的优势。

猜你喜欢

转载自blog.csdn.net/u010916338/article/details/82789295