那些年Google公开的大数据领域论文

2023-11-19

摘要:Google于2004年公布了MapReduce论文,为数据领域工作者开启了大数据算法之门。然而Google的大数据脚步显然不止于此,其后公布了Percolator、Pregel、Dremel、Spanner等多篇论文。没有止步的不仅是Google,很多公司也跟随其脚步开发了很多优秀的产品,虽然其中不乏模仿。

Mikio L. Braun柏林工业大学机器学习学博士后,TWIMPACT联合创始人兼首席数据科学家。在其个人博客上总结了Google近几年大数据领域的论文,并发表了自己的见解。

以下为译文:

主流的大数据基本都是MapReduce的衍生,然而把目光聚焦到实时上就会发现:MapReuce的局限性已经渐渐浮现。下面将讨论一下自大数据开始,Google公布的大数据相关技术,以及这些技术的现状。

MapReuce、Google File System以及Bigtable:大数据算法的起源

按时间算第一篇的论文应该2003年公布的 Google File System,这是一个分布式文件系统。从根本上说:文件被分割成很多块,使用冗余的方式储存于商用机器集群上;这里不得不说基本上Google每篇论文都是关于“商用机型”。

紧随其后的就是2004年被公布的 MapReduce,而今MapReuce基本上已经代表了大数据。传说中,Google使用它计算他们的搜索索引。而Mikio L. Braun认为其工作模式应该是:Google把所有抓取的页面都放置于他们的集群上,并且每天都使用MapReduce来重算。

Bigtable发布于2006年,启发了无数的NoSQL数据库,比如:Cassandra、HBase等等。Cassandra架构中有一半是模仿Bigtable,包括了数据模型、SSTables以及提前写日志(另一半是模仿Amazon的Dynamo数据库,使用点对点集群模式)。

Percolator:处理个体修改

Google并没有止步于MapReduce。事实上,随着Internet的指数增长,从零开始重算所有搜索索引变得不切实际。取而代之,Google开发了一个更有价值的系统,同样支持分布式计算。

这也是其有趣的地方,特别是在对比常见的主流大数据之后。举个例子,Percolator引入了事务,而一些NoSQL数据库仍然在强调得到高扩展性的同时你必须牺牲(或者不再需要)事务处理。

在2010年这篇 Percolator的论文中,Google展示了其网络搜索是如何保持着与时俱进。Percolator建立于已存类似Bigtable的技术,但是加入了事务以及行和表上的锁和表变化的通知。这些通知之后会被用于触发不同阶段的计算。通过这样的方式,个体的更新就可以“渗透”整个数据库。

这种方法会让人联想到类似Storm(或者是Yahoo的S4)的流处理框架(SPF),然而Percolator内在是以数据作为基础。SPF使用的一般是消息传递而不是数据共享,这样的话更容易推测出究竟是发生了什么。然而问题也随之产生:除非你手动的在某个终端上储存,否则你将无法访问计算的结果。

Pregel:可扩展的图计算

最终Google还需要挖掘图数据,比如在线社交网络的社交图谱;所以他们开发了 Pregel,并在2010年公布其论文。

Pregel内在的计算模型比MapReduce复杂的多:基本上每个节点都拥有一个工作者线程,并且对众多工作者线程进行迭代并行。在每一个所谓的“superstep”中,每一个工作者线程都可以从节点的“收件夹”中读取消息和把消息发送给其它节点,设置和读取节点相关值以及边界,或者投票停止。线程会一直运行,直到所有的节点都被投票停止。此外,还拥有Aggregator和Combiner做全局统计。

论文陈述了许多算法的实现,比如Google的PageRank、最短路径、二分图匹配等。Mikio L. Braun认为,对比MapReduce或SPF,Pregel需要更多实现的再思考。

Dremel:在线可视化

在2010年,Google还公布了 Dremel论文。一个为结构化数据设计,并拥有类SQL语言的交互式数据库。然而取代SQL数据库使用字段填补的表格,Dremel中使用的是类JSON格式数据(更准确的说,使用Google Protocol buffer格式,这将加强对允许字段的限制)。内部,数据被使用特殊格式储存,可以让数据扫描工作来的更高效。查询被送往服务器,而优秀的格式可以最大性能的输出结果。

Spanner:全球分布

最后 Spanner—— 全球分布式数据库;Google在2009年提出了Spanner远景计划,并在2012年对外公布Spanner论文。Spanner的公布可以说是Google向大数据技术中添的又一把火,Spanner具有高扩展性、多版本、全球级分布以及同步复制等特性。

跨数据中心的高扩展性及全球分布会对一致性保障提出苛刻的需求 —— 读写的外部一致性和基于时间戳的全局读一致性。为了保障这一点,Google引入了TrueTime API。TureTime API可以同步全球的时间,拥有一个TT.now()的方法,将获得一个绝对时间,同时还能得到时间误差。为了保证万无一失,TrueTime API具有GPS和原子钟双保险。也只有这样的机制才能让全球范围内的并发处理得到保障。

大数据超越MapReduce

Google并没有止步于MapReduce,他们在MapReduce不适用的地方开发新方法;当然,对于大数据领域来说这是个福音。MapReduce不是万能的;当然,你可以更深入一步,比如说将磁盘数据移入内存,然而同样还存在一些任务的内部结构并不是MapReduce可以扩展的。

在Google思路以及论文的启发下,同样涌现出一些开源项目,比如:Apache Drill、Apache Giraph、斯坦福GPS等等。

Google近年来每篇论文都有着深远的影响,同时大数据领域内有很多人必然在翘首以盼Google的下一篇论文。

原文链接: Big Data beyond MapReduce: Google's Big Data papers (编译/仲浩 审校/王旭东)

欢迎 @CSDN云计算 微博参与讨论,了解更多云信息。

本文为CSDN编译整理,未经允许不得转载。如需转载请联系market@csdn.net

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

那些年Google公开的大数据领域论文 的相关文章

随机推荐

  • vector的讲解及模拟实现(c++)

    为了方便大家理解我们边模拟实现vector容器的常用操作 然后根据代码讲解如何使用vector的这些功能 这样的话相信可以帮助大家更好的理解vector 目录 一 vector的介绍 二 vector模拟实现的讲解 1 vector的模块分
  • 计算机两个硬盘如何区分,双硬盘电脑怎么设置主从盘?

    随着电脑中存储的资料逐步增加 我以前电脑的硬盘空间严重不足 所以我购买了一块新硬盘 但是 两块硬盘放在一起工作后 经常发生死机 运行速度慢等问题 我查了很多资料后 最终确定是主从盘设置方面出的问题 本文将为大家介绍我是如何解决问题的 一 区
  • 毕业设计-基于深度学习的新闻推荐算法研究

    目录 前言 课题背景和意义 实现技术思路 基于深度学习的新闻推荐方法 1 DNR中的 两段式 方法 2 DNR中的 融合式 方法 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备
  • ubuntu的root用户ssh远程登录问题

    ubuntu默认不允许root远端登录 其它创建的用户默认是可以的 编辑ssh服务的配置文件 cd etc ssh 修改sshd config文件 设置允许root用户远程登录 找到 PermitRootLogin prohibit pas
  • R语言基础——缺失数据

    R语言基础 缺失数据 缺失数据的分类 统计学家通常将缺失数据分为三类 它们都用概率术语进行描述 但思想都非常直观 我们将用sleep研究中对做梦时长的测量 有12个动物有缺失值 来依次阐述三种类型 1 完全随机缺失 若某变量的缺失数据与其他
  • 问题(四)No matching distribution found for anyjson==0.3.3

    前言 本章主要讲述安装anyjson时提示 No matching distribution found for anyjson 0 3 3 的解决方案 一 问题描述 描述 批量下载第三方包时 提示 找不到anyjson0 3 3的匹配分布
  • 卷积神经网络识别花卉并分类另保存

    本篇博客转载自卷积神经网络训练花卉识别分类器 本篇博客的所有代码已上传至GitHub仓库 后续会更新各个文件夹及文件的详细说明 用者自取 由于卷积神经网络训练花卉识别分类器博客已将模型的训练 测试代码写好 且可以通过这篇博客获取到大神训练好
  • 获取,设置HTML控件位置

    得到HTML控件的位置 var v document all oo getBoundingClientRect 设置HTML控件的位置 dd style top v top dd style left v left
  • 关于2018网易游戏web前端实习生面试经历

    去年报名的网易前端面试 没想到过了3个月居然收到了面试的通知 心里也是激动 花了一天时间面试 自己总结一下面试过的问题 问题可能不全 但是这些是我所能记起来的问题 一面 1 css高度坍塌 两个盒子 一个下边据20px 一个上边据50px
  • Vue3项目创建

    1 新建一个文件夹 存放路径 2 Ctrl A选中路径 输入cmd 3 打开之后 输入vue create my project my project可以任意定义 这里作者用的vue3 study Please pick a preset
  • 基础目标检测算法CNN、RCNN、Fast RCNN、Faster RCNN

    基础目标检测算法介绍 CNN RCNN Fast RCNN和Faster RCNN 1 CNN 问题 输入尺寸固定 对于普通的CNN网络 由于输入图片中的物体可能有不同的长宽比 空间位置 目标物体可能占据图片的大部分 也可能是一小部分 目标
  • XSS挑战之旅平台通关练习level1-level6

    部署容器 进入XSS挑战之旅 首先需要关闭防火墙 输入以下命令进行关闭 gt systemctl stop c gt firewall cmd h c gt systemctl stop firewalld service gt syste
  • mssql数据库和Oracle数据库注入

    MS SQL Server注入 简介 MS SQL Server是微软推出的一款数据库产品 主要面向中小企业 其最大的优势就是在于集成了微软公司的各类产品及资源 提供了强大的可视化界面 高度集成的管理开发工具 在快速构建商业智能 BI 方面
  • java解决redis缓存与数据库一致性问题

    一 如何利用Redis缓存优化数据库性能 使用 Redis 缓存可以有效地提升数据库的性能和响应速度 下面是一些常见的 Redis 缓存优化技巧 对热点数据进行缓存 通过分析系统的访问模式 找出经常被访问的热点数据 缓存到 Redis 中
  • 设置背景图片不平铺

    图片路径 background image url static demo jpg 不平铺 background repeat no repeat 居中显示 background position center 拉伸占满整个容器 backg
  • C++ 实例化对象

    实例化对象 意味着一定有调用构造函数 实例化就是给 数据成员分配内存 构造对象 对象的成员函数和普通函数的区别就是 成员函数有个指向当前对象的this指针 可以访问对象的成员变量 其依赖于对象 静态函数就更像一个全局函数 没有this指针
  • 1031 查验号码

    一个号码由17位地区 日期编号和顺序编号加1位校验码组成 校验码的计算规则如下 首先对前17位数字加权求和 权重分配为 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 然后将计算的和对11取模得到值Z 最后按照以下关
  • 数字经济发展报告 附下载地址

    数字经济是以数字化的知识和信息作为关键生产要素 以数字技术为核心驱动力量 以现代信息网络为重要载体 通过数字技术与实体经济深度融合 不断提高经济社会的数字化 网络化 智能化水平 加速重构经济发展与治理模式的新型经济形态 关注公众号 互联互通
  • Java程序员编写代码的技巧

    这样说吧 系统学Java底层 是大多数Java初学者都会缴的智商税 为什么这样说呢 1 初级开发做的是增删改查 没必要了解底层 了解了对开发帮助也不大 2 中级开发要求的是熟悉业务 能排查大多数问题 这时也无需系统学习底层技能 3 架构师确
  • 那些年Google公开的大数据领域论文

    摘要 Google于2004年公布了MapReduce论文 为数据领域工作者开启了大数据算法之门 然而Google的大数据脚步显然不止于此 其后公布了Percolator Pregel Dremel Spanner等多篇论文 没有止步的不仅