`

用JavaScript阐述MapReduce原理

阅读更多

 

  谷歌在2003到2006年间连续发表了三篇非常有影响力的文章,分别是2003年在SOSP上发布的GFS,2004年在OSDI上发布的MapReduce,以及2006年在OSDI上发布的BigTable。GFS是文件系统相关的,其对后来的分布式文件系统设计具有指导意义;MapReduce是一种并行计算的编程模型,用于作业调度;BigTable是一个用于管理结构化数据的分布式存储系统,构建在GFS、Chubby、SSTable等Google技术之上。相当多的Google应用使用了BigTable,比如Google Earth和Google Analytics。因此这三种技术并称为谷歌技术”三宝”。今天,D瓜哥班门弄斧,对MapReduce来个”庖丁解牛”!

MapReduce简介

  MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一
个Map函数处理一个基于key/value pair的数据集合,输出中间的基于key/value pair的数据集合;然后
再创建一个Reduce函数用来合并所有的具有相同中间key值的中间value值。

 

 

编程实践

  常言道:”实践出真知” 。是骡子是马,拉出来遛遛才知道。所以,如果真的想搞懂这个原理,还是亲自写代码实践一下才是硬道理。

  最近和几个朋友一起学习JavaScript,所以就比较关注JavaScript。昨天上网瞎逛时,惊奇地发现,竟然有牛人使用JavaScript实现了MapReduce算法。然后转过来和大家分享,同时再加上我自己的一些狗尾续貂的介绍,希望有助于大家理解MapReduce。具体代码实现如下:

  没在这里插入过代码,完整内容,见

我的博客:“地瓜哥”博客网,http://www.diguage.com/archives/75.html

 

1
0
分享到:
评论
2 楼 liberD 2012-11-23  
lazy_ 写道
原来是卖广告的哈。博客不错。下次还是把code贴上来把,哥哥。
Talk is cheap, show me the code.

抱歉!我把文章发到我的个人博客上了,ItEye算是一个备用的。您可以去我的个人博客“地瓜哥”博客网:http://www.diguage.com/看看。希望对您有所帮助。

给你添麻烦了。抱歉!
1 楼 lazy_ 2012-11-23  
原来是卖广告的哈。博客不错。下次还是把code贴上来把,哥哥。
Talk is cheap, show me the code.

相关推荐

    mongodb学习手册.rar

    手册将阐述MapReduce的概念,以及如何在MongoDB中编写和执行MapReduce作业。 8. **安全与认证**:理解如何确保MongoDB实例的安全性至关重要。手册会涉及用户权限、角色、SSL连接、认证机制等内容,帮助你构建安全的...

    知识结构图(软件开发)

    这些技术都是当前IT行业中不可或缺的部分,下面将分别对这些技术进行详细的阐述。 首先,Android是一种基于Linux内核的开源移动操作系统,主要用于智能手机和平板电脑。Android开发主要涉及Java语言,它允许开发者...

    程序员技能

    程序员需要了解微处理器和嵌入式操作系统(如RTOS)的运作原理,能够使用C或C++进行低级别编程。了解I/O接口、中断、定时器等硬件资源的控制,以及实时性和功耗管理。在物联网(IoT)时代,嵌入式开发技能更是不可或缺...

    java毕设之搜索引擎的设计与实现

    论文部分会详细阐述搜索引擎的工作原理,如爬虫如何抓取网页,如何进行信息提取,以及如何利用TF-IDF算法进行关键词权重计算。这部分内容对于理解整个系统的运作至关重要。 "02数据库.rar"则可能包含用于存储网页...

    2018最新BAT面试题.zip

    - Hadoop:HDFS、MapReduce和YARN的工作原理。 - Spark:RDD、DataFrame、Spark SQL的使用,以及Spark Streaming和MLlib。 - 数据库:HBase、Cassandra等NoSQL数据库,以及Hive、Pig等数据仓库工具。 - 数据分析:...

    MongoDB_权威指南_中文版(补充完整目录导航)

    - **Javascript查询和惘查询**:讲解如何使用Javascript代码作为查询条件,以及惘查询的用法。 - **count查询记录条数**:演示如何统计查询结果的条数。 - **skip限制返回记录的起点**:说明如何跳过一定数量的文档...

    尚硅谷全套视频

    下面将详细阐述其中涉及的主要知识点: 一、Vue.js 全家桶 Vue.js 是一个轻量级的前端JavaScript框架,以其易学易用和高效性能而备受开发者喜爱。在"尚硅谷vue"部分,你将学习到以下内容: 1. Vue基础知识:了解Vue...

    Java毕业论文:搜索引擎系统附源代码.zip

    以下是对这个Java毕业论文中可能包含的知识点的详细阐述: 1. **Java基础**:Java是该项目的核心编程语言,因此,对Java语法、面向对象编程、异常处理、集合框架(如ArrayList、HashMap)等基本概念有深入理解是...

    历年程序员真题12-17

    2012年的试题可能包含了软件开发过程中的新技术和热点,比如移动应用开发(Android或iOS)、Web开发(HTML5、CSS3、JavaScript)、云计算基础、大数据处理概念(Hadoop、MapReduce)等。 2013年的考试可能会考察...

    搜索引擎的设计与实现201461103125_3042531-论文.zip

    综上所述,《搜索引擎的设计与实现》这篇论文详细阐述了搜索引擎从数据获取、信息处理、结果排序到用户交互的全过程,涵盖了爬虫技术、信息检索模型、排序算法、用户体验设计以及系统优化等多个关键领域,对于理解和...

    互联网大厂开发岗 面试题(一).zip

    - 编程语言基础:面试中常涉及到的编程语言有Java、Python、C++、JavaScript等,考察点包括语法、异常处理、面向对象特性等。 - 数据结构与算法:链表、栈、队列、树、图、哈希表等数据结构的运用及常见算法,如...

    【毕设】基于协同过滤算法的校园跳蚤系统设计与实现 .zip

    下面将详细阐述这些知识点。 一、协同过滤算法 协同过滤是推荐系统中的核心算法之一,其基本思想是用户对物品的评价或喜好可以被其他具有相似品味的用户借鉴。在这个校园跳蚤系统中,协同过滤可能分为用户基和物品...

    学习路线.docx java学习路线

    本文将基于标题“学习路线.docx Java学习路线”和描述,详细阐述Java学习的四个主要阶段,以及每个阶段的关键知识点。 **第一阶段:Java基础** 在这个阶段,新手需要掌握Java语言的基本语法和特性。首先,从环境...

    IT行业技术知识图谱秘籍.docx

    1. **架构方法论图谱**:阐述不同的架构设计方法,如敏捷开发、DevOps、持续集成/持续部署(CI/CD)等,以及如何选择和应用这些方法。 1. **设计模式秘籍图谱**:详细解读GOF的23种设计模式,如单例模式、工厂模式...

    JVM基础及微服务基础知识大数据技术全栈及面试指南.pdf

    - **Spring Boot**:简化了Spring应用的初始搭建以及开发过程,其目标是让开发者可以“开箱即用”。 - **Spring Cloud**:提供了一套微服务解决方案,包括服务注册与发现、配置中心、API网关等功能。 ### 大数据...

    largeSizeScreenMonitors:某市大数据大屏展示系统

    本篇文章将深入探讨这个系统的开源特性,并详细阐述其背后的技术架构和实现原理。 一、系统开源的意义 "系统开源"是该项目的一大亮点,意味着源代码对公众开放,允许开发者进行自由查看、修改和分发。这样的开放性...

Global site tag (gtag.js) - Google Analytics