07 | MapReduce(二):不怕失败的计算框架
MapReduce 框架的三个挑战
- 深入了解
- 翻译
- 解释
- 总结
MapReduce是一种用于海量数据处理的计算框架,通过Map和Reduce函数实现数据处理,简化了分布式计算的复杂性。文章介绍了MapReduce面临的挑战,包括协同、性能和易用性,并探讨了其容错机制和性能优化策略。在容错方面,MapReduce不仅应对节点失效和master节点失效,还提供了对异常数据的容错机制。性能优化方面,通过将程序搬到数据所在的服务器、使用Combiner减少网络数据传输等方式提高了性能。此外,MapReduce还提供了易用性的功能,如单机运行的库、内嵌的HTTP服务器和计数器机制,方便开发者进行调试和监控程序执行情况。整体而言,MapReduce框架通过简单而有效的实现,使得开发者能够专注于数据处理逻辑的实现,而无需过多关注分布式架构的复杂问题。 尽管MapReduce框架已经作出了很多努力,但仍存在一些缺陷,包括用户意识不到“分布式”的存在以及性能不太理想。随着时间的变迁,新一代系统如Dremel和Spark逐步取代MapReduce,提供更快的数据处理能力。对于分布式系统,希望增加机器能带来同比例的性能提升,但实现起来很难。文章推荐阅读了一篇有关MapReduce任务优化的博文,以帮助读者理解MapReduce的遗憾与缺陷中提到的额外开销问题。 在处理数据时,数据不平衡可能导致MapReduce任务运行缓慢。MapReduce论文提出的解决方法是通过开发人员自己实现一个分区函数。然而,这也意味着开发人员需要意识到“分布式”的存在。如果要在MapReduce框架层面解决这一问题,可能需要寻找更好的办法来处理数据不平衡,以减少开发人员的工作量。 综上所述,MapReduce框架在海量数据处理方面具有重要意义,但也面临一些挑战和缺陷,需要不断优化和改进。
《大数据经典论文解读》,新⼈⾸单¥59
全部留言(16)
- 最新
- 精选
- 在路上徐老师好,MapReduce的第一个问题后来通过SQL得到解决,编程界面更友好,第二个问题通过内存+硬盘混合存储得到了解决,内存保存中间数据更快,硬盘保存中间数据更稳定,中间数据丢失可以根据依赖的数据和逻辑重新生成。 回答老师的问题,如果不定制分区函数,数据会产生倾斜,那么可以给数据多的分区分配多一些Reduce程序,或者再次Hash。MapReduce在运行的最后阶段,会启动后备的Reduce程序,和运行较慢的Reduce程序处理同一个分区,哪个先完成就采用哪个结果,以此避免较慢的机器拖慢了整体处理时间。在最后的阶段,其实可以让MapReduce为一个分区启动多个Reduce程序,加速数据处理,减轻数据倾斜的影响。2021-10-0614
- 星语心愿数据倾斜源自于Key值分布不均,一方面数据源本身key值分布不均(仅以行号作为key值不存在这个问题),可以事先预处理key值,使其分布均匀,或者增大分区解决;另一方面在shuffle混洗后发生数据倾斜,写入磁盘时增加分区数,增加reduce的并发处理量,加速数据处理,减轻数据倾斜的影响。2021-10-085
- qinsi坐时光机快进的话,现代的大数据框架大都提供了类似SQL的接口,于是任务的实现和优化就类似数据库中查询计划的生成和优化,对于使用者透明了2021-10-0415
- demo如果只是定期的进行checkpoint那么从checkpoint恢复的时候不是会丢失数据吗?2022-11-20归属地:北京1
- 陈迪尝试回答思考题:(首先应该是reduce任务存在数据倾斜,map不存在这个问题) 1. 论文中提到的思路:map端本地先算掉一波(combiner),但要求计算任务满足结合律和交换律(commutative和associative) 2. 同样是论文中提到的思路:调参数,自动对倾斜的key任务,通过master,要求cluster manager分配更多的、等比例的资源 3. 猜想一波:还是在partition上做文章,自动对倾斜的key任务,添加一些参数,让这批key的record分开处理,再尝试聚合。但这个思路应该和本地combiner方法类似,对计算任务有要求。2021-10-061
- 泊浮目如果让你在 MapReduce 框架层面解决好这一个问题,你觉得有什么好办法吗?——现在的做法都是SQL做声明,底层用CBO做优化。2021-10-051
- SpoonSpark有针对数据倾斜的自动平衡机制2022-09-20
- Joey针对于数据倾斜问题,在reduce前进行数据量预评估,对reduce进行重新分配,确保每个reduce的数据均衡2022-08-23归属地:广东
- 大包子分区不平衡时,加一层负载均衡的机制,重新分配一下任务2022-06-04
- Helios感觉调度系统和Map Reduce里面的Master做的事情有些重合呢,比如将任务分为多少个、如何找到距离任务最近的分片,感觉两者谁做都可以呢。2021-11-25