热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

漫谈Hadoop的思想之源:Google

(一)Google介绍谷歌公司(GoogleInc.)成立于1998年9月4日,由拉里·佩奇和谢尔盖·布林共同创建,被公认为全球最大的搜索引擎。谷歌是一家位于美国的跨国科技企业,业务

(一) Google介绍

谷歌公司(Google Inc.)成立于1998年9月4日,由拉里·佩奇和谢尔盖·布林共同创建,被公认为全球最大的搜索引擎。

谷歌是一家位于美国的跨国科技企业,业务包括互联网搜索、云计算、广告技术等,同时开发并提供大量基于互联网的产品与服务,其主要利润来自于AdWords等广告服务。

1999年下半年,谷歌网站“Google”正式启用。 2010年3月23日,宣布关闭在中国大陆市场搜索服务。2015年8月10日,宣布对企业架构进行调整,并创办了一家名为Alphabet的“伞形公司”(Umbrella Company),成为Alphabet旗下子公司。2015年,在2015年度“世界品牌500强”排行中重返榜首,苹果和亚马逊分别位居第二和第三名。2016年6月8日,《2016年BrandZ全球最具价值品牌百强榜》公布,以2291.98亿美元的品牌价值重新超越苹果成为百强第一。2017年2月,Brand Finance发布2017年度全球500强品牌榜单,排名第一。 2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,谷歌公司名列第一位。

(二)Hadoop的思想之源:Google

Hadoop的思想之源是什么呢,就是我们非常熟悉的一个东西,就是Google,Google是一个搜索引擎,我相信在过去的几年里,不管你是做IT的,还是不是做IT的,或多或少多会接触过Google。如果你没接触过Google,在今天,可能你的生活质量会受到影响。

Google搜索引擎,Gmail,安卓(我们手机上用的操作系统,android也是google的产品),Google Map,Google学术(在学术界的人,经常就用Google学术),Google earth,Google 翻译,Google +(社交产品),说了这么多,Google的服务也在不断的扩展中,我们也无法预料Google下一阶段会出什么产品。

(三)Google的低成本之道

不使用超级计算机,不使用存储(淘宝的去I,去o,去e之路)

大量使用普通的PC服务(去掉机箱,外设,硬盘),提供有冗余的集群

全世界多个数据中心,有些附带发电厂

运营商向Google倒付费。

(四)集装箱数据中心

提及数据中心,除传统意义机房、冷却的大型“落地”部署数据中心,Sun最早提出集装箱数据中心的概念,并于06年推出了全球首个集装箱数据中心产品Blackbox,但在Sun被Oracle收购后并没有真正推广应用。

但是集装箱数据中心市场的发展并没有因此停滞不前。相反,越来越多的IT厂商开始涉足这一领域,Google、微软等厂商在集装箱数据中心市场展开了比拼。

集装箱数据中心充分发挥了模块化设计的优势,可以实现系统的快速、灵活部署,这不仅可以大幅降低建设成本,而且能够大幅缩短数据中心的建设周期。集装箱数据中心是一个预配置的完整解决方案,可以随时移动到任何地点,只要有电和网络就能工作,从而省去了用于土地审批和厂房建设的大量资金,节约了成本。
这里写图片描述
就搜索巨头谷歌来说,为了满足应用的需求习惯自己设计和开发服务器、存储系统等。从2005年开始,Google就在数据中心里采用了集装箱式设计,每个集装箱能容纳1160台服务器。Google集装箱数据中心有许多特别之处,其中主要是自用并不具备通用性。

Google集装箱数据中心的设计着重于“电源在上,水在下”,机架从集装箱的天花板悬挂下来,冷却设备在机架下面,让冷空气通过机架。冷却风扇速度可变,并可以精确管理,保证风扇在能够冷却机架的前提下运行在最低速度。
这里写图片描述

(五)Google面对的数据和计算难题

大量的网页怎么存储

搜索算法

Page-Rank计算问题

(六)倒排索引:

google如何快速的搜索网页,能够在0.0000000几秒就能够将数据搜索出来呢,这里面主要使用了一个倒排索引的技术。

首先假设有一篇文章,将这篇文章分词,(我爱北京天安门),假如有一种分词(我,爱,北京,天安门)索引怎么做呢,首先单词ID是一个编号,唯一标识号,后面的倒排列表是什么意思呢,(1;1)表示这个单词出现在标识号为1的那个网页里面,它的偏移量是第一个位置,我们在查找的时候,Google会查找这张表,查到我这个单词,在右边会得到一系列的倒排列表,通过倒排列表我们可以把文章找出来,通过偏移量我们可以定位该词的位置。对于西文,由于单词之间有空格,相对来说比较容易分词,对于中文,日文,由于词汇之间没有明显的分界,所以相对来说分词会比较难,其中有一种方法就是使用字典。(讲解我爱北京天安门得劲分词)。当然中文的分词还有很多,百度今天之所以这么成功,是因为它对中文的分词能力是比较强的。关于研究这个语言的分词是一个很大的学术领域,在今天有很多的数据科学家在这里面工作。
这里写图片描述
这里写图片描述

(七)page Rank算法:

这是Google最核心的算法,用于给每个网页价值评分,是google“在垃圾中找黄金”的关键算法,这个算法成就了今天的Google。
这里写图片描述
这里写图片描述
Google并没有公开发表过pageRank这个算法,这个算法是根据Google早期发表的一些论文大家推测出来的,具体现在google怎么计算呢,我也不知道,但是大体的思想还是这个思想,在一些具体的运算会有一些更加复杂的地方。我们这个模型尽管对大家来说已经很复杂了,但是对Google来说还是很简单的。Google今天不会这么简单来算的。
自从Google有了PageRank之后,它可以把垃圾变为黄金,他可以在一大堆垃圾数据,爬虫怕回来的数据里面找到用户所需要的东西,所以Google的用户体验要比其它的搜索引擎要好,所以用户都聚集在Google搜索平台上面,把其它的搜索引擎就都淘汰掉了,所以Google能称为今天的巨人绝对不是偶然的,PageRank在这里面起到了非常非常重要的作用。
Pagerank的想法是怎么样的呢,非常简单,我们怎么样判断一个页面的价值呢,根据页面的文字数来判断么,这个当然不可能,根据访问量,这个页面点击的越多,我们认为这个页面越有价值,这个听起来很有道理,但事实上是行不通的,因为google爬虫在爬取这个网页的时候,它不可能获取这个网页的点击数,点击数只有站长才知道,其它人是不知道的,所以也不能作为一个根据。google只能根据它从网页爬取的网页的信息来进行判断。Google的想法是怎么样的呢,根据页面的链接关系来判断一个页面的价值,如果有一个页面他被别人指向的越多,像四号页面,大家都指向它,就说明他是比较重要的,若有一个页面大家都不指向他,1号页面,说明1号页面就不是一个很重要的页面。可能有人认为这个太简单了,我把这个页面拿回来,数数里面的链接数就可以了,其实,也没有那么简单,还有一个问题就是这个网站的价值本身是不一样的,如果你的个人网站有另外一个个人网站指向你,这个好像没有什么稀奇,但如果中国国务院的网站指向你,就说明你比较重要了,这里有一个问题,就是中国国务院的网站的价值跟某位同学的网站的价值是完全不一样的,或者用Google的说法可以这么说,如果有一个pageRank比较高的网站指向你,跟一个PageRank比较低的网站指向你,这两个链接指向你的价值是不一样的,我么在计算的时候需要把这个因素考虑进去。
下面我们看一下Google是怎么样建立数学模型,并且求解出PageRank的,我们首先根据网页互相指向的信息,先做一个简单的情况,有1,2,3,4,四个网站,它们之间互相指来指去,首先根据互相指向的信息,得到一个Google矩阵,这个矩阵的每一个列代表网页,第一列,代表是第一个网页,第二列,代表是第二个网页,以此类推,每一行也代表一个网页,第一行代表第一个网页,第二行,代表是第二个网页,以此类推。我们首先看第一列,这里面有0,也有非0的值,0就代表没有连接,非0代表有连接,1没有链接指向自己,所以这里是0,1有连接指向2,所以这里是非零值,同样,1有连接指向3,所以这里页是非零值,四也一样,这里有一个问题,1/3是如何来的呢,原因很简单,每一列一共有1个权值,它有三个外链出去,所以每个链就分到1/3,所以这里就是1/3了,第二列就是第二个网页向外指出的情况,比如说,第二个网页有一个链接指向3,所以在第二列第三行有一个非零值,第二列这有一个链接指向4,所以在第二列第四行也有一个非零值,有两个外链共同来分权值1,所以每个能分为1/2,余下的两列也依此类推,google的矩阵就是这么来的。
之后该如何计算呢,要对Google矩阵做一点点轻微的调整,使用公式
G=αS+(1-α)U/n
其中S就是我们刚刚求出来的原始矩阵,α是0到1之间的一个数,这个数字会经常做调整,调整以后,可以影响PageRank的值,这个α是Google的工程师根据他们的经验来决定,这个α值具体取多少,才可以是pageRank的区分效果最好,这个是他们通过大量的实验摸索出来的,这个我们不需要管,现在也有可能使用机器学习来计算这个值。n是节点的数,这里就是4.U是一个全部元素都是1的矩阵,我们用这个(1-α)U/n矩阵加上αS矩阵,就形成了真正的google矩阵。pageRank是什么东西呢,是这个矩阵的特征值,以及特征向量,是这个矩阵的特征向量,特征向量是什么意思呢,我们把这个矩阵G乘以一个向量,加入这个矩阵是4乘以4的话,q应该是有四个元素的列向量,我们需要找一个q,使这个G乘以q,结果还是等于q,因此我们把求页面价值的问题,转为求一个很庞大的矩阵的特征值的问题。变成一个数学问题。这个特征值一般采用迭代的方法来算,我们给一个原始的向量q,q可以随意写,把这个元素不断地乘以G,Google在它的论文里面证明了,这样一直迭代下去,它一定是收敛的。所以我们可以预先设定一个阈值,当迭代到一定的次数后,q与上一次迭代出来的q的距离小于这个阈值,我们就停止迭代的过程。就把这个q拿出来作为一个近似解,这个就是pageRank,我就算出来了。

这里写图片描述
数学上轻描淡写,非常简单,实际上我们用计算机上来算的时候是不是那么简单呢,这个肯定没有那么简单,为什么,大家想一想就知道了,这个矩阵有多大呢,不说多了,假设有一百万个网页,这个已经是很小的一个数字了,因为Google有上亿个网页。假设为1百万个网页的时候,矩阵的元素有多少呢,一百万乘以一百万,一万个亿,在任何一台服务器都是无法实现的,只能证明理论上是可行的,并且特征向量是符合我们要求的东西,编写程序的时候是无法实现的。所以产生了Map-reduce 思想。

(八)Map-Reduce想法

如果什么运算是一台计算机解决不了的,那么就是很多台计算机来解决。所以Google采用了不仅一台计算机来算,而是很多台计算机采用分布式的方式来以。如下图所示,每一个节点里面都会被分配这个矩阵里面的若干个列,在现实中我们可以理解,其实我们的网页在现实中分布在很多服务器节点上面。每个服务器都存放了若干个网页,但不会存放全部的网页,从网页上我们能分析出,它有哪些外链指向出来,因此Google矩阵的某个列在这个节点上是能够算出来的。如何算,我生成一个特征向量,有q1,q2,q3,q4,…,qn。假设第一个节点有2个列,我通过网络把q1,q2送过来,给第一个节点,假设第二个节点有两个列,我通过网络把q3,q4送过来,其它节点以此类推,在第一个节点我算q1乘以第一个列,q2乘以第二个列,算出这个列的结果,第二个节点依此类推。由于每个节点的网页数都不会很多,所以每个节点都可以很快的计算出结果出来。最后把所有算出来的结果发到一个共同的目标节点,在该节点把所有的列加起来,由于节点数有限,因此目标节点将所有的列都加起来也不是很困难的事情,因此我们在目标节点处得到一个向量,迭代第一步产生的特征向量。将该项不同的列的值量重新分配到各个节点上,在进行计算,计算后在汇总到该节点上,产生新的特征向量,不断的迭代,迭代到收敛值为止,知道产生符合的结果。通过这个方法,pageRank就可以进行计算了,这种用分散的节点来分负荷进行计算的思想,就是我们今天所说的map-reduce。我们将一个巨大的任务,我们认为不可能完成的任务,通过map映射到各个节点,来进行分布式计算。在每个节点算出这个值之后,最后汇总到一个节点上去,这个汇总的过程,我们把它叫Reduce,reduce之后,我们又把汇总的结果分散到各个节点上去,在map一次,又重新计算,在reduce一次。反复Map-reduce很多次以后,这个page-rank就被我们算出来了。

(九)Google带给我们的思想

GFS(Google file system)—-Hadoop的HDFS

Map-Reduce–Hadoop Map-Reduce

Bigtable—-Hbase

今天的漫谈就讲到这里了,小编感谢大家的观看,觉得好的话,请支持小编。

Hadoop,Hbase,Nutch,Sorl 安装教程

课程介绍:
本课程将主要面向之前未接触过Hadoop,Hbase,Nutch,Solr的学员,讲解如何安装该四个软件。能够将Nutch抓取的网页数据放到Hbase中存储,建立索引放到Solr中,并通过SolrJ获取到数据。

课程特色:
专属答疑+课件资料提供+视频无限时回放+VIP交流群

开课时间:
随到随学,自由支配

点我试看:http://edu.csdn.net/course/detail/6031?utm_source=blog11


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 如何使用代理服务器进行网页抓取?
    本文介绍了如何使用代理服务器进行网页抓取,并探讨了数据驱动对竞争优势的重要性。通过网页抓取,企业可以快速获取并分析大量与需求相关的数据,从而制定营销战略。同时,网页抓取还可以帮助电子商务公司在竞争对手的网站上下载数百页的有用数据,提高销售增长和毛利率。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
  • 【回顾】聚焦DTCC | 巨杉数据库与您相约DTCC 数据库技术大会
    2018年5月10-12日,第九届中国数据库技术大会(DTCC2018)将以“数领先机•智赢未来”为主题,设定2大主会场及20个技术专场,邀请来自国内外互联网、金融、教育等行业百余 ... [详细]
author-avatar
若涵她娘_124
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有