• 标签为“‘Google’”的文章

    没处藏身撩——用Google街景地图找到你

    作者:  • 2008 年 9 月 7 日 • 技术主义 • 暂无评论

    where can I hide myself in this google world? Google Street View digs you out whereever you are.Google Street View provides panoramic 360 degree views from designated roads throughout the coverage area for Google Maps.Use of the Street View Panorama object requires support for the Flash plugin on the client’s browser.How to use this...

    继续阅读 →

    The Last Guy: Game on Google Earth

    作者:  • 2008 年 9 月 5 日 • 技术主义 • 2 条评论

    Google and Sony cooperated to release a new playstation game- The Last Guy. This game is base on GOOGLE EARTH. It is available as adownloadable game on the PlayStation Store. The game is a rescue game in which the eponymous player character must guide civilians to escape from monster-infested cities. On July 31, 2008, it was released...

    继续阅读 →

    MapReduce

    作者:  • 2008 年 5 月 25 日 • 技术主义 • 3 条评论

    —最近用了tilecache,它是mapreduce最好的实例,还有kamap,geowebcache等。 这些软件都是MapReduce很好的实现。转载一篇关于MapReduce的文章。来自:百度百科 。 MapReduce是一种编程模型(并不是google自己开发的编程工具),用于大规模数据集(大于1TB)的并行运算。概念”Map(映射)”和 “Reduce(化简)”,和他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。他极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。 映射和化简 简单说来,一个映射函数就是对一些独立元素组成的概念上的列表(例如,一个测试成绩的列表)的每一个元素进行指定的操作(比如前面的例子里,有人发现所有学生的成绩都被高估了一分,他可以定义一个“减一”的映射函数,用来修正这个错误。)。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里创建了一个新的列表来保存新的答案。这就是说,Map操作是可以高度并行的,这对高性能要求的应用以及并行计算领域的需求非常有用。 而化简操作指的是对一个列表的元素进行适当的合并(继续看前面的例子,如果有人想知道班级的平均分该怎么做?他可以定义一个化简函数,通过让列表中的元素跟自己的相邻的元素相加的方式把列表减半,如此递归运算直到列表只剩下一个元素,然后用这个元素除以人数,就得到了平均分。)。虽然他不如映射函数那么并行,但是因为化简总是有一个简单的答案,大规模的运算相对独立,所以化简函数在高度并行环境下也很有用。 分布和可靠性 MapReduce通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性;每个节点会周期性的把完成的工作和状态的更新报告回来。如果一个节点保持沉默超过一个预设的时间间隔,主节点(类同Google File System中的主服务器)记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。每个操作使用命名文件的原子操作以确保不会发生并行线程间的冲突;当文件被改名的时候,系统可能会把他们复制到任务名以外的另一个名字上去。(避免副作用)。 化简操作工作方式很类似,但是由于化简操作在并行能力较差,主节点会尽量把化简操作调度在一个节点上,或者离需要操作的数据尽可能进的节点上了;这个特性可以满足Google的需求,因为他们有足够的带宽,他们的内部网络没有那么多的机器。 用途 在Google,MapReduce用在非常广泛的应用程序中,包括“分布grep,分布排序,web连接图反转,每台机器的词矢量,web访问日志分析,反向索引构建,文档聚类,机器学习,基于统计的机器翻译…”值得注意的是,MapReduce实现以后,它被用来重新生成Google的整个索引,并取代老的ad hoc程序去更新索引。 MapReduce会生成大量的临时文件,为了提高效率,它利用Google文件系统来管理和访问这些文件。 其他实现 Nutch项目开发了一个实验性的MapReduce的实现。 参考 Dean, Jeffrey & Ghemawat, Sanjay (2004). “MapReduce: Simplified Data Processing on Large Clusters”. Retrieved Apr. 6, 2005 http://labs.google.com/papers/mapreduce.html “Our abstraction is inspired by the map and reduce primitives present in Lisp and many...

    继续阅读 →