真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在Redis上對Java執(zhí)行分布式MapReduce-創(chuàng)新互聯(lián)

這篇文章主要講解了“怎么在Redis上對Java執(zhí)行分布式MapReduce”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么在Redis上對Java執(zhí)行分布式MapReduce”吧!

創(chuàng)新互聯(lián)公司于2013年成立,先為貴州等服務(wù)建站,貴州等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為貴州企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

什么是MapReduce?

MapReduce 是一種可以用Java實現(xiàn)的分布式計算的程序模型。該算法包含兩個關(guān)鍵任務(wù),稱為  Map 和  Reduce。

Map 任務(wù)的目的  是將數(shù)據(jù)集轉(zhuǎn)換為另一個數(shù)據(jù)集,其中元素被分解為稱為元組的鍵/值對。該Reduce 任務(wù)將這些數(shù)據(jù)元組組合成一小組元組,使用地圖的輸出作為輸入。

分布式計算意味著將任務(wù)分成幾個單獨的進程,然后可以在大型商用硬件集群上并行執(zhí)行。一旦  MapReduce 將大數(shù)據(jù)集的各個元素分解為元組,然后進一步將它們縮小為較小的集合,剩余的數(shù)據(jù)可以并行處理,這可以顯著加快需要對數(shù)據(jù)執(zhí)行的處理。

何時需要使用MapReduce處理Redis數(shù)據(jù)?

在許多情況下,使用它MapReduce 來處理Redis數(shù)據(jù)很有幫助  。通常,它們的共同點是您需要處理的數(shù)據(jù)量非常大。

舉一個簡單的例子,您可以考慮一種情況,其中您有大量組織的月度能耗數(shù)據(jù)。現(xiàn)在假設(shè)您需要處理此數(shù)據(jù)以生成每個組織的大使用年份,最小使用年份等結(jié)果。雖然編寫算法來執(zhí)行這種處理對于有經(jīng)驗的程序員來說并不困難,但是如果必須運行大量數(shù)據(jù),許多這樣的算法將花費很長時間來執(zhí)行。

作為長處理時間問題的解決方案,您可以使用  MapReduce 減少數(shù)據(jù)集的總體大小,從而使處理速度更快。對于許多組織來說,處理時間的減少可能非常重要,因為它可以釋放硬件,以便可以用于其他計算任務(wù)。

還有更多的情況MapReduce 使用Redisson存儲在Redis中的分布式  數(shù)據(jù)可能是非常有用的。例如,MapReduce 如果您需要快速,可靠且準確地計算非常大的文件或文件集合的字數(shù),則使用  特別有用。

在Redis中存儲的數(shù)據(jù)上執(zhí)行分布式MapReduce的示例

以下是如何使用MapReduce 創(chuàng)建生成準確字數(shù)的有效算法的示例  。這似乎是一個非常簡單的任務(wù),但使用  MapReduce 非常重要的是減少非常大的文本塊或大量文件集的處理時間。

請查看以下代碼,了解此算法如何使用  RedissonMapReduce 提供的文本數(shù)據(jù)并對其進行處理以可靠地生成準確的字數(shù)。

步驟1

創(chuàng)建Redisson配置:

//來自JSON
配置 config  =  配置。fromJSON(...)
//來自YAML
配置 config  =  配置。來自YAML(...)
//或動態(tài)
Config  config  =  new  Config();
...

第2步

創(chuàng)建Redisson實例:

RedissonClient  redisson  =  Redisson。create(config);

第3步

定義  Mapper 對象。這適用于每個  Map 條目,并按空格分割值以分隔單詞:

公共 類 WordMapper  實現(xiàn) RMapper < String,String,String,Integer > {

    @覆蓋
    public  void  map(String  key,String  value,RCollector < String,Integer >  collector){
            String [] words  =  value。split(“[^ a-zA-Z]”);
            for(String  word:words){
                收藏家。發(fā)射(字,1);
            }
        }
    }

}

第4步

定義Reducer 對象。這計算每個單詞的總和。

公共 類 WordReducer  實現(xiàn) RReducer < String,Integer > {

     @覆蓋
     public  Integer  reduce(String  reducedKey,Iterator < Integer >  iter){
         int  sum  =  0 ;
         而(ITER。hasNext()){
            整數(shù) i  =(整數(shù))iter。next();
            sum  + =  i ;
         }
         返還 金額 ;
     }
}

第5步

定義  Collator 對象(可選)。這會計算單詞總數(shù)。

公共 類 WordCollator  實現(xiàn) RCollator < String,Integer,Integer > {

     @覆蓋
     public  Integer  collate(Map < String,Integer >  resultMap){
        int  result  =  0 ;
        為(整數(shù) 計數(shù):結(jié)果映射。值()){
            結(jié)果 + =  計數(shù) ;
        }

        返回 結(jié)果 ;
     }
}

第6步

以下是如何一起運行它:

    RMap < String,String >  map  =  redisson。getMap(“wordsMap”);
    地圖。put(“l(fā)ine1”,“愛麗絲開始變得非常疲憊”);
    地圖。把(“l(fā)ine2”,“坐在她姐姐的銀行和”);
    地圖。放(“l(fā)ine3”,“她無事可做一次”);
    地圖。put(“l(fā)ine4”,“偷看了她姐姐讀的書”);
    地圖。put(“l(fā)ine5”,“但它沒有圖片或?qū)υ挕保?
    地圖。put(“l(fā)ine6”,“以及書籍的用途”);
    地圖。put(“l(fā)ine7”,“思想愛麗絲沒有圖片或談話”);

    RMapReduce < String,String,String,Integer >  mapReduce
             =  地圖。< String,Integer > mapReduce()
                  。mapper(新的 WordMapper())
                  。reducer(new  WordReducer());

    //計算單詞的出現(xiàn)次數(shù)
    Map < String,Integer >  mapToNumber  =  mapReduce。execute();
    //計算總字數(shù)量
    整數(shù) totalWordsAmount  =  mapReduce。execute(new  WordCollator());

 MapReduce 也可用于收集類型的對象,其中包括  Set,  SetCache,  List,  SortedSet,  ScoredSortedSet,  Queue,  BlockingQueue,  Deque,,  BlockingDeque,  PriorityQueue,和  PriorityDeque。

如何使用Redisson對Redis中存儲的數(shù)據(jù)執(zhí)行MapReduce

Redisson是一個最先進的Redis客戶端,為使用Java進行編程和數(shù)據(jù)處理提供了無限可能。從大的企業(yè)到最小的初創(chuàng)公司,各種各樣的公司使用Redisson通過Redis為他們的Java應(yīng)用程序提供支持。

作為一個高度復(fù)雜的Redis客戶端,Redisson提供了服務(wù),對象,集合,鎖和同步器的分布式實現(xiàn)。它支持一系列Redis配置,包括單個,集群,標記或主從配置。

MapReduce 如果您已經(jīng)使用Redisson在Redis中存儲大量數(shù)據(jù),則使用  是一個很好的選擇。Redisson提供了一種基于Java的  MapReduce 編程模型,可以輕松處理存儲在Redis中的大量數(shù)據(jù)。

感謝各位的閱讀,以上就是“怎么在Redis上對Java執(zhí)行分布式MapReduce”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么在Redis上對Java執(zhí)行分布式MapReduce這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


新聞標題:怎么在Redis上對Java執(zhí)行分布式MapReduce-創(chuàng)新互聯(lián)
文章出自:http://weahome.cn/article/cdjhss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部