Prime_DSC_MentionCalcSpark系統(tǒng)簡介
創(chuàng)新互聯(lián)專注于玉山企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),電子商務(wù)商城網(wǎng)站建設(shè)。玉山網(wǎng)站建設(shè)公司,為玉山等地區(qū)提供建站服務(wù)。全流程按需設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)實現(xiàn)功能 : 根據(jù)條件(siteId, startTime, endTime, campaignId, folder)從HBase數(shù)據(jù)源中讀取文本數(shù)據(jù)作為輸入,把提交的關(guān)鍵詞作為條件,輸出在文本中關(guān)鍵詞提及的次數(shù)
存在問題 : 對于大數(shù)據(jù)量的計算時間較長.
解決思路 :
把HBase結(jié)果反射成TweetBean修改成TweetBean的setXXX的方式構(gòu)造TweetBean
當有5W條數(shù)據(jù),通過反射轉(zhuǎn)成TweetBean需要60s,通過TweetBean的setXX的方法需要20s
把讀取HBase的所有字段改成讀取HBase的需要的字段
當有5W條數(shù)據(jù),讀取所有字段時需要60s,讀取需要的字段需要25s
從UC取DC數(shù)據(jù)時,不使用map函數(shù),替換成mapPartition函數(shù),這樣使用可以從HBase批量取數(shù)據(jù),僅需要一次HBase連接即可
存儲計算結(jié)果,使用foreachPartition函數(shù). 當遍歷Iterator時不是每次在循環(huán)里面都存儲計算結(jié)果,而是在循環(huán)外面維護隊列,批量存儲結(jié)果
根據(jù)Spark集群資源,合理利用Spark集群的資源,如資源越多,集群計算能力越強.而比較合理的機器資源和任務(wù)并行度的關(guān)系是 : 任務(wù)數(shù) = 機器CPU核數(shù) * (2 或者 3), 所以設(shè)置RDD的分區(qū)數(shù)為集群CPU核數(shù) * 2
從HBase讀取數(shù)據(jù)的并行度跟表的region數(shù)相關(guān).默認情況下,建表時只有一個region,而當region越來越大時,需要split成兩個region,region越多split的閾值越大,導(dǎo)致很多數(shù)據(jù)都存在一個region中.此時如果需要查詢一張表,假設(shè)該表有5個region,則會有5個線程同時查詢5個region的數(shù)據(jù),但是如果其中一個region很大,是其他region的10倍,則該region的讀取是其他region讀取性能的10倍,導(dǎo)致整個任務(wù)的delay. 解決該問題的方法可以先通過預(yù)分區(qū)和對rowkey使用hash/MD5等算法使數(shù)據(jù)均勻的分布在各個region,這樣在讀取數(shù)據(jù)時可以根據(jù)數(shù)據(jù)均勻分配而更好的并發(fā)讀取數(shù)據(jù).
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。