大數(shù)據(jù)計算BUG處理:
成都創(chuàng)新互聯(lián)專注于靖安網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供靖安營銷型網(wǎng)站建設,靖安網(wǎng)站制作、靖安網(wǎng)頁設計、靖安網(wǎng)站官網(wǎng)定制、成都微信小程序服務,打造靖安網(wǎng)絡公司原創(chuàng)品牌,更為您提供靖安網(wǎng)站排名全網(wǎng)營銷落地服務。程序修改前資源情況:
Driver : 1臺
Worker : 2臺
程序提交申請內(nèi)存資源 : 1G內(nèi)存
內(nèi)存分配情況 :
1. 20%用于程序運行
2. 20%用于Shuffle
3. 60%用于RDD緩存
單條TweetBean大小 : 3k
1. 內(nèi)存溢出
原因:因為程序會把所有的TweetBean查詢出來并且合并(union),該操作在內(nèi)存中進行。則某個campaign數(shù)據(jù)量較大時,如500W數(shù)據(jù),則500W*10k=50G,超出內(nèi)存限制。
解決方法: 先按數(shù)據(jù)量切分task,避免單個task有很多數(shù)據(jù)造成內(nèi)存溢出。把所有的task切分完成放到task列表中。循環(huán)task列表,當取出的task的數(shù)據(jù)量大于200000時,合并所有的數(shù)據(jù)并拆分成16個RDD分片。循環(huán)取task列表直至結束。
批量取200000數(shù)據(jù)的原因:200000*3k=600M,兩臺機器可用于程序運行的內(nèi)存=2(機器數(shù))* 2G(程序申請的內(nèi)存大?。?* 0.2(用于程序運行的內(nèi)存比例) = 800M,可以滿足存儲200000數(shù)據(jù),避免內(nèi)存溢出。
2. 運行緩慢
原因:因為兩臺機器,每臺機器可用于shuffle的內(nèi)存大小 = 2(機器數(shù))* 1G(程序申請的內(nèi)存大?。? 0.2(用于程序運行的內(nèi)存比例)= 400M。
200000(批量處理的數(shù)據(jù)量)* 3k(單條TweetBean大?。? 600M,批量Shuffle的數(shù)據(jù)量大于機器可用內(nèi)存,所以數(shù)據(jù)會Flush到硬盤,導致讀取數(shù)據(jù)緩慢。
解決方法:調(diào)整程序Shuffle可用內(nèi)存,如下:
程序申請內(nèi)存資源:2G
內(nèi)存分配情況 :
1. 20%用于程序運行
2. 60%用于Shuffle
3. 20%用于RDD緩存
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。