用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
accesine960的公告
<div> <h3><a target="_blank" href="http://www.domolo.com">天天多么乐</a></h3> <a href="http://accesine.blog.techweb.com.cn/">田春峰的IT网志</a> <hr /> <a target="_blank" href="http://www.domolo.com" > <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/accesine960/16853/o_tcf-at-cofco.JPG" width=120 height=150 border="0" alt="田春峰" /></a> </p> <!-- <a target="_blank" href="http://www.domolo.net/readme">互联网广告识别技术</a> <br /> <a target="_blank" href="http://snshelper.appspot.com/">开心网 加好友 外挂</a> <br /> <a target="_blank" href="http://data.domolo.com/snsbrowser">校内网 加好友 外挂</a> <br /> <a target="_blank" href="http://www.mmfans.net">碎戏明星班</a> <br /> <!-- <a href="http://u.domolo.com/readme">Discuz On Rails</a> --> <br /> <a href="http://seo.domolo.com/" alt="seo 客户端工具">seo 客户端工具下载</a> <br /> <a target = "_blank" href="http://seo.domolo.com/alexa"> Alexa Top 100 索引量研究报告 </a> <br /> --> </p> <object width="178" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://www.hada.cc/res/davinci.swf?bid=93"></param><param name="wmode" value="transparent"></param><embed width="178" src="http://www.hada.cc/res/davinci.swf?bid=93" type="application/x-shockwave-flash" wmode="transparent"></embed></object> <!-- csdn ad --> <div> <script type="text/javascript"><!-- google_ad_client = "pub-8976573831271056"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_type = "text"; //2007-05-12: csdn-donews-blog-160-600 google_ad_channel = "4419634545"; google_color_border = "FFFFFF"; google_color_bg = "FFFFCC"; google_color_link = "2D8930"; google_color_text = "FFFFFF"; google_color_url = "FFFFFF"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> </div> <!-- csdn ad --> <p> <script type="text/javascript" src="http://pub.mybloglog.com/comm2.php?mblID=2005112020373600&amp;c_width=180&amp;c_sn_opt=y&amp;c_rows=5&amp;c_img_size=f&amp;c_heading_text=Recent+Readers&amp;c_color_heading_bg=005A94&amp;c_color_heading=ffffff&amp;c_color_link_bg=E3E3E3&amp;c_color_link=005A94&amp;c_color_bottom_bg=005A94"></script> </p> <div align="left"> <iframe scrolling="yes" frameborder="0" marginheight="0" marginwidth="0" width="175" height="250" src="http://u.domolo.com/lucene_mail_list_rediscuss/list" ></iframe> </div> <p /> <a href="http://www.rapleaf.com/profile/view/awgquJWC"><img alt="accesine's Rapleaf Score" border="0" src="http://www.rapleaf.com/image/awgquJWC.jpg" /></a> <p>关于我的信息链接<br> <script type="text/javascript"><!-- google_ad_client = "pub-8976573831271056"; google_ad_width = 125; google_ad_height = 125; google_ad_format = "125x125_as_rimg"; google_cpa_choice = "CAAQ4aSdzgEaCByiq1J203ivKM_M93M"; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <br> <a target="_blank" href="http://www.donews.net/accesine">Donews Blog</a> </p> </p> <a href="http://www.bloglines.com/sub/http://blog.csdn.net/accesine960"> <img src="http://www.bloglines.com/images/sub_modern3.gif" border="0" alt="Subscribe with Bloglines" /> </a> </p> <img src="http://blog.csdn.net/images/blog_csdn_net/accesine960/16853/o_tianchunfeng.jpg" > </p> </div> </p> <!-- Site Meter XHTML Strict 1.0 --> <script type="text/javascript">var site="s11accesine"</script> <script type="text/javascript" src="http://s11.sitemeter.com/js/counter.js?site=s11accesine"> </script> <noscript><div> <a href="http://s11.sitemeter.com/stats.asp?site=s11accesine"> <img src="http://s11.sitemeter.com/meter.asp?site=s11accesine" alt="Site Meter" /></a> </div></noscript> <!-- Copyright (c)2005 Site Meter --> </p> <a href="http://dushucun.googlepages.com/">洪洞县杜戍村</a>
文章分类
.net
C++
os
sp
工作流
开发工具
名人连接
数据库相关
搜索引擎
网络开发
我的好朋友
移动开发
组件
存档

原创  MapReduce:Google的人间大炮 收藏

	网络上关于MapReduce的介绍,最权威的就是 Jeffrey Dean 
和 Sanjay Ghemawat 
的那篇:MapReduce: Simpli ed Data Processing on Large Clusters
您可以到 labs.google.com 上下载该文。

    对goole这样需要分析处理海量数据的公司来说,普通的编程方法已经不够用了。于是 google开发了MapReduce。简单来说,语法上MapReduce就像Lisp,使用MapReduce模型你可以指定一个Map方法来处理诸如key/value这样的数据,并生成中间形式的 key/value 对,然后再使用 Reduce方法合并所有相同key的中间 key/value 对生成最终结果。google的MapReduce是运行在数千台机器上的处理TB数据的编程工具。

    据说在MapReduce这样的编程模型下,程序可以自动的在集群环境中按照并行方式分布执行。就如同java程序员可以不考虑内存泄露一样,MapReduce程序员也不许要关心海量数据如何被分配到多台机器上,不需要考虑如果参加计算的机器出现故障应该怎么办,不需要考虑这些机器间如何协作共同完成工作的。

    举个例子吧:最近我在做贝叶斯论坛垃圾帖屏蔽演示系统 Beta 1 的时候,就需要计算样本数据中每个词语出现的频率。我的计算步骤就是先分词,然后用hash表处理。要是碰到TB的数据,我的赛扬CPU可是吃不消。那么放在MapReduce下面会是什么样子呢?

    下面是一个伪实现:
第一步:
    map(String key, String value):
    // key: 文档名称
    // value: 文档内容
    for each word w in value:
        EmitIntermediate(w, "1");
第二步:
    reduce(String key, Iterator values):
    // key: 一个词
    // values: 关于这个词的频率数据
    int result = 0;
        for each v in values:
            result += ParseInt(v);
        Emit(AsString(result));
 

    如果你看过向量空间模型就知道,这就是计算 TF 和 IDF 的语义实现。

    Google的WebReduce 包是用C++实现的,在MapReduce: Simpli ed Data Processing on Large Clusters 一文中还包含了一段真实的WebReduce的代码,可以看看,饱饱眼福。

sogou.com 搜索引擎目前的规模:

参数1、每两周代码效率就提高10倍
参数2、数次优化后还能占满4G内存的程序
参数3、操控50台服务器200G内存10T硬盘,每分钟上万个查询
参数4、由2万行配置文件控制,并且用户一次点击就打印出100M日志

发表于 @ 2005年03月17日 23:08:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:贝叶斯论坛垃圾帖屏蔽演示系统 Beta 1 | 新一篇:发布:CtrlC源代码搜索引擎

  • 发表评论
  • 评论内容:
  •  
Copyright © accesine960
Powered by CSDN Blog