作者簡介:
鄭志彬,畢業於華南理工大學計算機科學與技術(雙語班)。先後從事過電子商務、開放平臺、移動瀏覽器、推薦廣告和大數據、人工智能等相關開發和架構。目前在vivo智能平臺中心從事 AI中臺建設以及廣告推薦業務。擅長各種業務形態的業務架構、平臺化以及各種業務解決方案。
轉載自公衆號:vivo互聯網技術
一、什麼是數據傾斜
對 Spark/Hadoop 這樣的分佈式大數據系統來講,數據量大並不可怕,可怕的是數據傾斜。
對於分佈式系統而言,理想情況下,隨着系統規模(節點數量)的增加,應用整體耗時線性下降。如果一臺機器處理一批大量數據需要120分鐘,當機器數量增加到3臺時,理想的耗時爲120 / 3 = 40分鐘。但是,想做到分佈式情況下每臺機器執行時間是單機時的1 / N,就必須保證每臺機器的任務量相等。不幸的是,很多時候,任務的分配