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

陳碩的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 陳碩 閱讀(3629) 評論(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>
            韩国精品在线观看| 亚洲视频网站在线观看| 欧美伊人久久| 欧美中文字幕在线视频| 亚洲欧美日韩国产综合精品二区| 亚洲国产精品va| 亚洲日本va午夜在线电影 | 亚洲高清在线精品| 在线观看欧美成人| 亚洲电影免费| 亚洲精品乱码久久久久久蜜桃91| 亚洲黄色影院| 亚洲小说欧美另类社区| 午夜一级在线看亚洲| 久久精品国产亚洲精品| 美日韩精品视频| 亚洲激情网址| 亚洲在线中文字幕| 亚洲视频自拍偷拍| 蜜臀久久久99精品久久久久久| 性色av一区二区三区在线观看 | 99这里只有精品| 亚洲欧美视频一区二区三区| 国产精品日韩欧美一区| 欧美精品久久久久久久久久| 一区二区三区四区在线| 亚洲欧美日韩一区二区| 99热在线精品观看| 欧美一级视频一区二区| 欧美国产日韩免费| 欧美日韩视频在线一区二区 | 欧美国产日韩精品免费观看| 欧美性开放视频| 亚洲第一中文字幕| 欧美一区二区三区视频在线观看| 欧美自拍偷拍| 夜夜爽99久久国产综合精品女不卡| 亚洲影院免费| 欧美日韩免费在线观看| 亚洲春色另类小说| 麻豆精品在线观看| 欧美一区二区视频网站| 欧美日一区二区在线观看| 亚洲国产成人久久| 久久久久久久精| 亚洲欧美春色| 国产精品青草综合久久久久99 | 亚洲一区二区三区午夜| 亚洲国产一区二区三区a毛片| 久久精品国产成人| 国产在线拍偷自揄拍精品| 亚洲天堂偷拍| 亚洲午夜国产成人av电影男同| 欧美区在线播放| 一区二区日韩免费看| 亚洲国产欧美另类丝袜| 一区二区三区日韩在线观看| 久久黄金**| 亚洲电影一级黄| 欧美成人a视频| 国产欧美精品日韩精品| 欧美激情导航| 黄色国产精品一区二区三区| 亚洲第一区色| 欧美日韩国产精品专区| 久久久999精品免费| 欧美久久99| 久久国产精品久久久久久久久久| 久久婷婷国产综合尤物精品| 欧美日韩国产va另类| 久久理论片午夜琪琪电影网| 欧美日韩三区| 亚洲国内自拍| 国产欧美69| 亚洲激情啪啪| 亚洲三级视频在线观看| 亚洲综合99| 一区二区三区国产盗摄| 午夜精品美女久久久久av福利| 亚洲免费不卡| 久久精品国产91精品亚洲| 午夜在线a亚洲v天堂网2018| 欧美日韩精品欧美日韩精品| 欧美不卡福利| 亚洲电影观看| 日韩网站免费观看| 激情成人综合| 午夜综合激情| 久久久久**毛片大全| 欧美亚韩一区| 亚洲永久免费观看| 亚洲欧美成人一区二区在线电影| 欧美日韩不卡| 国产专区欧美专区| 久久精品国产免费看久久精品| 久久综合国产精品台湾中文娱乐网| 国产一区二区三区日韩| 亚洲综合第一| 欧美一区影院| 亚洲国产欧美日韩| 欧美激情综合网| 亚洲午夜精品福利| 欧美电影免费观看大全| 亚洲欧洲一区二区天堂久久| 久久漫画官网| 日韩视频免费在线| 午夜国产不卡在线观看视频| 国产一区二区久久| 久久免费国产| 亚洲免费观看| 欧美伊人影院| 亚洲国产黄色| 国产午夜亚洲精品不卡| 欧美极品影院| 久久这里只有精品视频首页| 一区二区三区日韩| 久久国产精品久久久久久| 亚洲国产日韩美| 国产麻豆日韩| 国产精品久久久久久久久免费| 久久综合给合久久狠狠色| 亚洲精品之草原avav久久| 欧美chengren| 久久国产乱子精品免费女| 亚洲欧美日韩一区二区三区在线观看 | 西瓜成人精品人成网站| 日韩视频一区二区在线观看| 亚洲高清视频的网址| 中国亚洲黄色| 亚洲社区在线观看| 亚洲精品欧洲| 亚洲欧洲精品一区二区三区 | 黑人操亚洲美女惩罚| 国产一区二区三区久久 | 久久精品国产999大香线蕉| 亚洲国产成人精品女人久久久 | 久久综合激情| 久久人人爽人人爽爽久久| 欧美成年网站| 欧美三级视频在线观看| 国际精品欧美精品| 99精品热6080yy久久 | 男男成人高潮片免费网站| 99国产精品| 99热免费精品在线观看| 亚洲免费视频网站| 国产欧美亚洲精品| 久久这里只有| 国精品一区二区| 欧美一级片在线播放| 一本不卡影院| 国产精品v日韩精品| 亚洲高清中文字幕| 久久爱另类一区二区小说| 欧美国内亚洲| 欧美一区二区在线看| 欧美国产视频一区二区| 国产精品一区二区在线观看网站| 黄色成人在线观看| 亚洲综合色网站| 亚洲第一精品电影| 欧美一级专区免费大片| 欧美日韩视频专区在线播放| 亚洲国产成人tv| 久久久国产精品一区二区中文| 欧美国产精品劲爆| 久久久久久91香蕉国产| 国产精品午夜在线| 午夜天堂精品久久久久| 亚洲视频一二三| 免费视频亚洲| 亚洲人成啪啪网站| 欧美99在线视频观看| 久久三级视频| 亚洲经典自拍| 你懂的成人av| 麻豆久久婷婷| 亚洲国产精品久久人人爱蜜臀| 久久久久久尹人网香蕉| 亚洲夜间福利| 欧美久久久久久久| 中文亚洲视频在线| 欧美黄色aaaa| 欧美日韩国产色视频| 一本色道久久综合亚洲精品不 | 国产精品毛片一区二区三区 | 久久亚洲影音av资源网| 欧美顶级艳妇交换群宴| 久久国产日韩| 国产精品久久久久久久久借妻 | 国产欧美婷婷中文| 一本久久综合| 亚洲视频专区在线| 欧美日韩国产精品一区| 亚洲国产日韩欧美综合久久| 精品成人在线| 欧美福利在线| 久久久美女艺术照精彩视频福利播放 | 欧美高清视频一二三区| 国产欧美精品日韩精品|