青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

陳碩的Blog

muduo多機協作網絡編程示例一:單詞計數及排序

去年我寫了《Muduo 網絡編程示例》系列文章,這些文章已經收入《Linux 多線程服務端編程:使用 muduo C++ 網絡庫》一書。這些文章講的基本都是運行在單機上的網絡程序,每個例子都只有一個程序(第7.13節例外)。我接下來打算繼續寫幾篇文章,談一談分布在多臺機器上、協作發揮作用的網絡編程例子。

今天先講第一個,單詞計數及排序。單詞計數(word count),顧名思義就是統計一個文本文件里邊每個詞出現了多少次。排序指的是按出現次數從多到少排序,也可以把問題改為“找出出現次數最多的1000個單詞”。

這個問題有三個層次,第一是輸入文件比較小,能完全放入內存;第二是輸入文件比較大,不能一次性都放入內存;第三是輸入文件分布在多臺機器上,這需要用到網絡編程。

第一個層次很好解決,幾十行代碼就搞定了。https://gist.github.com/4519962

第二個層次不難解決,基本思路是分而治之,先hash分塊統計單詞出現次數,將每一塊按出現次數排序,最后歸并。代碼見 https://github.com/chenshuo/recipes/blob/master/puzzle/query_freq.cc ,分析見 http://www.cnblogs.com/baiyanhuang/archive/2012/11/11/2764914.html

第三個層次也不難,可以當做網絡編程的練習來做。如果有合適的框架,可以輕松解決,因為單詞計數是map reduce的經典范例,對出現次數排序也可以再用一步map reduce搞定(估計需要一個好的 shuffle 函數,簡單hash是不行的)。

如果用普通網絡編程,一種設計思路如下圖,其中方框代表機器,橢圓代表輸入輸出文件,圓角矩形代表進程。思路跟第二個層次一樣,先hash到多個shard文件(由hasher和receiver負責),再對每個shard文件排序(由sender負責),最后歸并(merger)。

topk

注意這種思路適合求top K元素,不適合按出現次數排序全部單詞,因為最終結果收集在一臺機器上。目前這個sender實現的一個限制是,每個shard必須能全部放入內存,因為sender對shard排序是在內存中進行的。如果數據更大,還需要實現單機外部排序。

圖中hasher和receiver的代碼見muduo示例中的 muduo/examples/wordcount ;sender和merger的代碼見 https://github.com/chenshuo/recipes/tree/master/topk 。注意merger沒有使用muduo,而是采用阻塞網絡編程。有興趣的讀者可以思考其背后的原因。要想發揮 merger 正常的性能,需要修改 /usr/include/boost/asio/basic_socket_streambuf.hpp ,增大緩沖區,即 enum { buffer_size = 8192 };

這可以看作是map reduce的原始實現,或者說用map reduce的思想手寫了一些原始工具。如果把map reduce比作C語言,這里的幾個程序相當于匯編寫的函數。

以后我再寫一個按出現次數全排序的例子吧,需要替換這里的sender和merger。

(.完.)

posted on 2013-01-13 04:01 陳碩 閱讀(3623) 評論(2)  編輯 收藏 引用 所屬分類: muduo

評論

# re: muduo多機協作網絡編程示例一:單詞計數及排序[未登錄] 2013-01-14 10:58 春秋十二月

不錯,看了代碼,雖沒直接實現Hash、堆和歸并算法,但這沒關系,使用現成的boost和stl庫也好,你對庫運用的很到位  回復  更多評論   

# re: muduo多機協作網絡編程示例一:單詞計數及排序 2013-01-16 11:38 UCoding

學習了!  回復  更多評論   

<2013年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

導航

統計

常用鏈接

隨筆分類

隨筆檔案

相冊

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区免费看| a91a精品视频在线观看| 香蕉久久夜色精品国产使用方法| 欧美一区二区三区视频免费播放| 欧美在线看片| 亚洲国产精品福利| 奶水喷射视频一区| 日韩一区二区精品葵司在线| 午夜日韩激情| 国产毛片精品国产一区二区三区| 欧美在线不卡| 一区二区三区波多野结衣在线观看| 久久精品一区二区三区四区| 激情欧美丁香| 国产欧美日韩一区二区三区在线 | 黄色一区二区在线| 欧美日韩18| 久久久中精品2020中文| 性色av一区二区三区| 亚洲每日更新| 亚洲精品一区在线| 欧美好吊妞视频| 久久一二三国产| 久久成人精品电影| 午夜精品视频一区| 亚洲欧美综合网| 性欧美办公室18xxxxhd| 一区二区三区日韩精品| 亚洲乱码国产乱码精品精可以看 | 欧美日韩高清在线| 久久综合久久综合这里只有精品| 亚洲直播在线一区| 亚洲深夜福利视频| 亚洲欧美精品| 欧美一区二区三区喷汁尤物| 欧美在线一级视频| 久久久久**毛片大全| 蜜桃av久久久亚洲精品| 欧美/亚洲一区| 欧美日韩国产美女| 欧美成人精品在线| 欧美日韩国产一级片| 国产欧美综合在线| 亚洲国产成人久久| 亚洲欧美一区二区激情| 麻豆国产va免费精品高清在线| 欧美在线一二三区| 国产主播精品在线| 欧美一区二区三区喷汁尤物| 亚洲国产日韩欧美在线99| 一本色道久久综合精品竹菊| 99视频一区二区三区| 欧美不卡在线视频| 老妇喷水一区二区三区| 亚洲激情第一区| 亚洲国产精彩中文乱码av在线播放| 亚洲一区二区免费| 亚洲影音一区| 蜜臀av在线播放一区二区三区| 久久精品成人欧美大片古装| 国内久久精品视频| 亚洲国产精品一区二区第四页av | 久久嫩草精品久久久久| 欧美中文字幕在线观看| 亚洲毛片在线观看.| 亚洲欧美另类在线| 亚洲丶国产丶欧美一区二区三区 | 国产精品乱人伦一区二区| 欧美欧美天天天天操| 欧美一区二区三区播放老司机| 国产欧美日韩免费| 欧美精品国产精品| 久久综合99re88久久爱| 午夜在线电影亚洲一区| 免费欧美在线| 性做久久久久久免费观看欧美| 激情久久一区| 欧美日韩美女在线观看| 亚洲一区二区三区久久| 久久免费视频网站| 一本色道**综合亚洲精品蜜桃冫| 国产精品成人播放| 国产视频在线观看一区二区三区 | 亚洲福利在线视频| 久久av免费一区| 欧美精品成人91久久久久久久| 午夜精品久久久久久99热| 久久久国产一区二区| 久久亚洲国产精品日日av夜夜| 欧美成人精品在线| 这里只有视频精品| 亚洲高清二区| 欧美另类亚洲| 欧美岛国在线观看| 久久精品亚洲一区二区三区浴池| 欧美在线免费| 亚洲午夜性刺激影院| 韩日欧美一区二区三区| 欧美日韩理论| 欧美激情一区在线| 午夜久久久久久久久久一区二区| 亚洲福利视频网| 欧美福利影院| 亚洲黄网站在线观看| 亚洲福利视频三区| 欧美 日韩 国产在线| 另类激情亚洲| 老鸭窝亚洲一区二区三区| 日韩午夜三级在线| 最新日韩在线视频| 亚洲精品在线电影| 亚洲视频欧洲视频| 亚洲欧美精品suv| 在线一区二区日韩| 国产欧美丝祙| 欧美日韩高清在线播放| 国产伦精品一区二区三区在线观看 | 久久国产日韩欧美| 欧美激情视频一区二区三区不卡| 在线亚洲国产精品网站| 国产亚洲女人久久久久毛片| 欧美日本国产一区| 欧美成人一区二区三区片免费| 亚洲自拍都市欧美小说| 亚洲精品护士| 亚洲伦理网站| 91久久精品日日躁夜夜躁国产| 久久爱91午夜羞羞| 亚洲欧美日韩人成在线播放| 亚洲精品视频一区二区三区| 亚洲人成人99网站| 亚洲全黄一级网站| 99热在这里有精品免费| 99精品热视频| 午夜久久电影网| 久久久女女女女999久久| 亚洲一区网站| 欧美在线一区二区| 久久这里有精品15一区二区三区| 久久久综合网站| 91久久在线视频| 亚洲色诱最新| 久久综合激情| 国产精品国产三级欧美二区| 国产精品美女久久| 伊人久久婷婷| 久久蜜桃av一区精品变态类天堂| 亚洲毛片视频| 欧美女人交a| 午夜免费久久久久| 欧美国产第二页| 韩国成人理伦片免费播放| 中文无字幕一区二区三区| 欧美电影在线观看完整版| 欧美亚洲一区在线| 国内精品久久久久影院色| 午夜免费久久久久| 亚洲视频导航| 国产婷婷精品| 欧美ed2k| 欧美日韩国产一区二区三区| 99re6这里只有精品| 亚洲精品美女在线观看播放| 欧美不卡视频一区发布| 99精品热视频只有精品10| 亚洲乱亚洲高清| 国产欧美精品久久| 欧美成人tv| 欧美午夜电影网| 久久久久国产成人精品亚洲午夜| 欧美亚洲视频在线看网址| 亚洲激情成人在线| 性色av一区二区三区| 亚洲欧洲日本专区| 正在播放亚洲| 亚洲国产精品美女| 亚洲午夜国产成人av电影男同| 激情文学一区| 亚洲一区二区三区四区中文 | 国产欧美精品一区二区三区介绍| 亚洲欧美综合国产精品一区| 久久久中精品2020中文| 亚洲影院在线观看| 蜜臀久久久99精品久久久久久| 午夜精品一区二区三区四区 | 亚洲图片你懂的| 欧美久久成人| 亚洲图中文字幕| 欧美一区二区三区久久精品茉莉花 | a91a精品视频在线观看| 91久久久久久国产精品| 欧美一区二区三区免费观看视频| 中文国产成人精品| 国产日本欧美视频| 久久国产乱子精品免费女| 欧美 日韩 国产 一区| 亚洲国产一区在线| 欧美大片免费久久精品三p | 亚洲第一精品福利| 免费亚洲电影在线|