第一,RDD架構(gòu)重構(gòu)與優(yōu)化
盡量去復(fù)用RDD,差不多的RDD,可以抽取稱為一個共同的RDD,供后面的RDD計算時,反復(fù)使用。
第二,公共RDD一定要實現(xiàn)持久化
對于要多次計算和使用的公共RDD,一定要進(jìn)行持久化。
持久化,也就是說,將RDD的數(shù)據(jù)緩存到內(nèi)存中/磁盤中,(BlockManager),以后無論對這個RDD做多少次計算,那么都是直接取這個RDD的持久化的數(shù)據(jù),比如從內(nèi)存中或者磁盤中,直接提取一份數(shù)據(jù)。
第三,持久化,是可以進(jìn)行序列化的
如果正常將數(shù)據(jù)持久化在內(nèi)存中,那么可能會導(dǎo)致內(nèi)存的占用過大,這樣的話,也許,會導(dǎo)致OOM內(nèi)存溢出。
當(dāng)純內(nèi)存無法支撐公共RDD數(shù)據(jù)完全存放的時候,就優(yōu)先考慮,使用序列化的方式在純內(nèi)存中存儲。將RDD的每個partition的數(shù)據(jù),序列化成一個大的字節(jié)數(shù)組,就一個對象;序列化后,大大減少內(nèi)存的空間占用。
序列化的方式,唯一的缺點就是,在獲取數(shù)據(jù)的時候,需要反序列化。
如果序列化純內(nèi)存方式,還是導(dǎo)致OOM,內(nèi)存溢出;就只能考慮磁盤的方式,內(nèi)存+磁盤的普通方式(無序列化)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。