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

陳碩的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 陳碩 閱讀(3621) 評論(2)  編輯 收藏 引用 所屬分類: muduo

評論

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

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

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

學習了!  回復  更多評論   

<2012年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

導航

統計

常用鏈接

隨筆分類

隨筆檔案

相冊

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            在线观看国产精品淫| 国产精品综合| 亚洲人成人一区二区三区| 老司机精品久久| 美日韩精品视频| 99re66热这里只有精品4| 亚洲精品在线二区| 国产精品一区二区男女羞羞无遮挡| 午夜在线一区| 久久久久久久久岛国免费| 亚洲人成人99网站| 国产精品99久久久久久宅男| 国产午夜亚洲精品理论片色戒 | 欧美日韩p片| 亚洲欧美中日韩| 久久精品一本| 中文日韩在线视频| 久久久九九九九| 一区二区毛片| 欧美在线观看视频在线 | 国产性做久久久久久| 免费亚洲电影| 国产精品久久久| 欧美aa在线视频| 亚洲网站在线看| 两个人的视频www国产精品| 亚洲一级高清| 免费精品视频| 欧美专区在线观看一区| 欧美成人久久| 久久精品视频一| 欧美午夜精品一区| 亚洲国产美女| 好吊色欧美一区二区三区四区| 亚洲精品美女在线观看播放| 韩国一区二区三区美女美女秀| 一本久道综合久久精品| 最新国产成人在线观看| 羞羞答答国产精品www一本 | 亚洲国产精品一区| 久久国内精品自在自线400部| 亚洲婷婷在线| 欧美精品一区三区| 亚洲大胆女人| 亚洲高清在线观看| 午夜精品理论片| 亚洲综合成人在线| 欧美日韩国产天堂| 尤物在线观看一区| 亚洲欧美制服另类日韩| 亚洲午夜精品| 欧美日韩一区三区四区| 亚洲第一精品影视| 亚洲人成欧美中文字幕| 久久综合999| 免费成人av在线| 在线观看成人av| 久久久久久亚洲综合影院红桃 | 欧美国产三级| 亚洲黄色精品| 免费欧美电影| 亚洲第一精品久久忘忧草社区| 1204国产成人精品视频| 欧美一区二区高清| 国产精品福利在线观看网址| 一区二区三区四区精品| 先锋a资源在线看亚洲| 国产精品一级久久久| 亚洲一二三四区| 久久精品99久久香蕉国产色戒 | 久久久久国产一区二区三区| 蜜臀av在线播放一区二区三区| 一区二区视频欧美| 老司机免费视频一区二区| 亚洲高清电影| 中文av字幕一区| 国产欧美日韩一区二区三区在线观看 | 欧美主播一区二区三区美女 久久精品人 | 久久精品午夜| 亚洲国产一区二区三区高清| 99国产欧美久久久精品| 欧美性猛交99久久久久99按摩| 一本久道久久综合狠狠爱| 欧美一二三区精品| 精久久久久久| 欧美理论在线播放| 欧美一级艳片视频免费观看| 久久深夜福利免费观看| 亚洲精品免费在线观看| 国产精品久久综合| 久久久视频精品| aa级大片欧美三级| 免费看精品久久片| 制服诱惑一区二区| 国产自产精品| 欧美日韩综合一区| 久久久91精品| 亚洲视频大全| 欧美激情精品久久久久久久变态| 亚洲一区二区在线免费观看视频| 精品9999| 国产精品视区| 欧美国产激情二区三区| 校园春色国产精品| 99精品欧美一区| 欧美高清视频在线观看| 西西裸体人体做爰大胆久久久| 91久久精品久久国产性色也91| 国产精品一二三四| 黄色亚洲在线| 在线性视频日韩欧美| 久久综合久久88| 亚洲欧美国产视频| 日韩亚洲国产精品| 精品91在线| 国产亚洲精品久久飘花| 欧美区国产区| 欧美粗暴jizz性欧美20| 久久国产精品网站| 亚洲一区在线视频| 99pao成人国产永久免费视频| 欧美寡妇偷汉性猛交| 久久久爽爽爽美女图片| 亚洲欧美在线网| 亚洲一区国产一区| av72成人在线| 日韩视频国产视频| 亚洲一区二区综合| 99精品视频一区| 亚洲精品系列| 亚洲精品日韩欧美| 亚洲人成在线播放| 亚洲国产第一| 亚洲国产高清在线观看视频| 美女视频黄 久久| 久久综合伊人77777麻豆| 久久久夜夜夜| 久久影音先锋| 毛片精品免费在线观看| 久久午夜电影网| 久久亚洲精选| 欧美大尺度在线| 欧美电影免费观看网站| 美女脱光内衣内裤视频久久影院| 久久视频这里只有精品| 老牛嫩草一区二区三区日本| 久久午夜激情| 欧美激情第10页| 亚洲精品乱码久久久久久蜜桃91| 亚洲精品视频在线观看网站| 一区二区国产日产| 亚洲伊人一本大道中文字幕| 欧美一区二区三区四区在线| 久久国产乱子精品免费女| 久久影视精品| 欧美日韩福利视频| 国产精品免费aⅴ片在线观看| 国产精品夜夜夜| 国内精品久久久| 亚洲精品在线看| 亚洲男人第一网站| 久久夜色精品一区| 亚洲福利小视频| 亚洲无线视频| 久久久久久久高潮| 欧美日本二区| 国产日韩欧美在线| 亚洲欧洲一区二区在线播放| 亚洲亚洲精品在线观看| 久久国产欧美日韩精品| 欧美高清视频在线| 亚洲一区国产视频| 欧美aa国产视频| 国产欧美精品在线播放| 91久久国产综合久久蜜月精品 | 亚洲在线不卡| 欧美不卡福利| 国产日韩欧美亚洲一区| 亚洲激情校园春色| 欧美一区二区性| 亚洲人成网站999久久久综合| 亚洲欧美中日韩| 欧美日韩aaaaa| 精品成人在线| 亚洲在线成人| 亚洲国产高清在线| 久久国产精品久久国产精品| 欧美另类变人与禽xxxxx| 激情久久综合| 亚洲性色视频| 羞羞色国产精品| 欧美高清视频在线观看| 国产视频观看一区| 亚洲视频在线播放| 欧美国产1区2区| 久久精品一二三区| 国产精品自拍视频| 亚洲欧美日本在线| 亚洲精品美女91| 久久影音先锋|