解决Spark数据倾斜的八种实用方法
什么是数据倾斜?
对 Spark/Hadoop 这样的分布式大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜。
对于分布式系统而言,理想情况下,随着系统规模(节点数量)的增加,应用整体耗时线性下降。如果一台机器处理一批大量数据需要 120 分钟,当机器数量增加到 3 台时,理想的耗时为 120 / 3 = 40 分钟。但是,想做到分布式情况下每台机器执行时间是单机时的1 / N,就必须保证每台机器的任务量相等。不幸的是,很多时候,任务的分配是不均匀的,甚至不均匀到大部分任务被分配到个别机器上,其它大部分机器所分配的任务量只占总量的小部分。比如一台机器负责处理 80% 的任务,另外两台机器各处理 10% 的任务。
解决Spark 数据倾斜的八大实用方法.doc
(40 KB, 下载次数: 1)
|