hadoop学习--搜索引擎面临的数据和计算难题

一、大量网页怎么存储

  亿万级;没有硬盘,存储在内存中,加快检索的速度;冗余的办法储存,将数据写入多个节点中。

二、搜索算法

  搜索响应速度,毫秒级响应;——倒排索引

三、page-rank 计算问题

  网页排名,优先推荐的问题;——

倒排索引

  先分词——建立索引——建立倒排列表

  

page-rank 算法

4被指向的最多,被page-rank高的指向,权重不同 

1:没有指向它的连接

  0 0 0 0

2:1有1/3的权重直到自己,4有100%的权重指向自己

  1/3 0 0 1

3:以此类推

S指矩阵,α靠经验指定0-1之间,n指网页数,这里就是4,U指全为1的矩阵

 找出一个q使得q=G*q;

 特征向量q里第一个就是页面1的page-rank值。

收敛函数:不断迭代,当小于我们设置的阈值时,可取近似值。

但是网页上亿,实现不了这个矩阵算法。

多台计算机,分布式计算

  网页存储在多个不同的服务器节点上,每个节点上的网页都是矩阵里的若干个列,算出这个列的特征向量,往后加和,汇总到一个节点上,得到一个向量,这是第一次迭代出来的结果,一直循环迭代,直到在阈值范围内,就算出了所有网页的page-rank

汇总的过程叫reduce  再将得到的q分配叫map。

 

总结:

GFS  ——   Gogle file system  把网页分散在各个节点,并提供冗余

map-reduce  ——  把巨大的不容易计算的,分散到各个节点,再汇总

Bigtable  ——  所有的数据不用再分table,全部放在一张大表里(如Hbase)

原文地址:https://www.cnblogs.com/onroad2019/p/11340298.html