赞
踩
之前就一直想总结这个系列,但由于种种原因拖延至今,昨晚京东深圳电话二面就问到了Map-Reduce原理,所以赶紧总结一波!
通过上述定义可以知道,Hadoop的框架最核心的设计就是:HDFS和MapReduce。
那究竟MapReduce是什么样一个计算过程呢?
首先上两张图展示MapReduce的过程:
结合上述两张图可以看出MapReduce的过程:
首先将任务分成不同的子任务,最后再将子任务的结果进行合并!对于每一个子任务都需要进行下面的3步操作:
更加具体一点,可以分为5步操作:
注:Map -> Shuffle -> Reduce 的中间结果,包括最后的输出都是存储在本地磁盘上。
优点:
缺点:
当我们接触到Hive的时候,会发现它的语句和SQL非常类似,实现的功能也是一致,所以我们就有疑问了,为什么有了SQL还要Hive呢?
那究竟什么是Hive呢?
那么Hive的优缺点是啥呢?
优点:
缺点:
应用场景:
Spark库本身包含很多应用元素,这些元素可以用到大部分大数据应用中,其中包括对大数据进行类似SQL查询的支持,机器学习和图算法,甚至对实时流数据的支持。核心组件如下:
由于这些组件满足了很多大数据需求,也满足了很多数据科学任务的算法和计算上的需要,Spark快速流行起来。不仅如此,Spark也提供了使用Scala、Java和Python编写的API;满足了不同团体的需求,允许更多数据科学家简便地采用Spark作为他们的
大数据解决方案。
总结:
中间结果输出:基于MapReduce的计算引擎通常会将中间结果输出到磁盘上,进行存储和容错。出于任务管道承接的,考虑,当一些查询翻译到MapReduce任务时,往往会产生多个Stage,而这些串联的Stage又依赖于底层文件系统(如HDFS)来存储每一个Stage的输出结果。
Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足。
具体来说:
四大特性:
Spark与Hadoop的结合:
如果想统计下过去10年统计学论文出现最多的几个单词,看看大家都在研究些什么,那收集好论文后,该怎么办呢?
方法1:遍历所有论文统计单词次数。
方法2:Python多进程的方式进行处理。
方法3: 把作业交给多个计算机去完成。
方法4:MapReduce进行处理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。