前言
数据倾斜是大数据开发中经常会遇到的问题,而且基本是面试中的必问考点,在面试中以及实际开发中,几乎天天面临的都是这个问题。本文是小鹏人工爬虫来的,希望能帮自己和我的读者们理解它!
正文
Hadoop中的数据倾斜
概述
在MapReduce编程模型中十分常见,用通俗易懂的话来说,数据倾斜无非就是大量的相同key被partition分配到一个分区里,造成了‘一个人累死,其他人闲死’的情况,这种情况是我们不能接受的,这也违背了并行计算的初衷,首先一个节点要承受着巨大的压力,而其他节点计算完毕后要一直等待这个忙碌的节点,也拖累了整体的计算时间,可以说效率是十分低下的。
现象
Hadoop能够进行对海量数据进行批处理的核心,在于它的分布式思想,也就是多台服务器(节点)组成集群,进行分布式的数据处理。
举个例子,假如要处理一个10亿数据的表格,我的集群由10个节点组成,一台服务器处理这10亿数据需要10个小时,现在我将10亿条数据平均的分配到不同的节点上,每台节点负责处理1亿条数据,那么原本需要10个小时完