JAVA-每日一面 2022-01-10
问:mapreduce原理
答:
1、简介:mapreduce源自google的一篇文章,将海量数据处理的过程拆分为map和reduce。mapreduce 成为了最早的分布式计算框架,
这样即使不懂的分布式计算框架的内部运行机制的用户,也可以利用分布式的计算框架实现分布式的计算,并在hadoop上面运行
2、设计思想:hadoop 文件系统 ,提供了一个分布式的文件系统,但是hadoop文件系统读写的操作都涉及到大量的网络的操作,
并不能很好的完成实时性比较强的任务。但是hadoop可以给上面的应用提供一个很好的支持。比如hadoop文件系统上面可以运行mapreduce。
mapreduce是一个计算的框架,mapreduce是一个分布式的计算框架,这样mapreduce利用分布式的文件系统,将不同的机器上完成不同的计算,
然后就计算结果返回。这样很好的利用了分布式的文件系统。
数据分布式的存储,然后计算的时候,分布式的计算,然后将结果返回。这样的好处就是不会涉及到大量的网络传输数据。
3、优点:mapreduce的计算框架的优点是,极强的扩展能力,可以在数千台机器上并发的执行其次,有很好的容错性,
另外,就是向上的接口简洁。用户只需要写map和reduce函数,即可完成大规模数据的并行处理。
4、缺点:mapreduce并不适合对实时性要求比较高的场景,比如交互式查询或者是流式计算。另外,也不适合迭代类的计算
(比如机器学习类的应用)。
5、mapreduce的启动时间比较长,对于批处理的任务,这个问题并不算大。但是对于实时性比较高的任务,其启动时间长的缺点就很不合适了。
6、mapreduce一次执行的过程里面往往涉及到多出磁盘读写,以及网络的传输。对于迭代的任务,这样很好的开销需要很多次,明显降低了效率。
7、而Storm和Spark,一个是流式计算的框架,一个是机器学习的框架。他们更适合解决这类型的任务。