【问题标题】:How to save content of bilion websites found by search engine (how google is doing it)如何保存搜索引擎找到的十亿网站的内容(google是怎么做的)
【发布时间】:2019-08-16 14:44:45
【问题描述】:

在他们最初的Google Paper Sergey Brin 和 Lawrence Page 解释说,他们没有将抓取网页的 HTML 内容直接保存在存储库中,因为他们想节省一些硬盘空间。这是那段:

4.2.2 存储库

存储库包含每个网页的完整 HTML。每个页面都使用 zlib 压缩(参见 RFC1950)。的选择 压缩技术是速度和压缩之间的权衡 比率。我们选择 zlib 的速度而不是显着的改进 bzip 提供的压缩。 bzip的压缩率是 与 zlib 的 3 比 1 相比,存储库上大约 4 比 1 压缩。在存储库中,文档存储在一个之后 其他并以 docID、长度和 URL 为前缀,如 图 2. 存储库不需要使用其他数据结构 为了访问它。这有助于数据一致性并使 开发更容易;我们可以重建所有其他数据结构 仅来自存储库和列出爬虫错误的文件。

显然,他们使用压缩算法(在他们的例子中是 zlib)首先压缩数据,然后将其保存在存储库中。压缩数据实际上是可以直接保存在文件系统上的二进制数据。元数据(页面标题、页面大小、链接等)可以通过文件系统上二进制文件的链接保存在 DB 中。这听起来是个好主意,但如果我们谈论的是抓取数十亿页面的搜索引擎,那么这种保存数据的方式可能会有一些缺点。

今天最好的方法是什么?如果你想建立一个可以处理数百万网站内容的大型搜索引擎,你会在哪里以及如何保存爬取页面的 HTML 内容?

【问题讨论】:

    标签: web-crawler bigdata cluster-computing search-engine data-storage


    【解决方案1】:

    如果你想建立一个能够处理数百万网站内容的大型搜索引擎,你会在哪里以及如何保存爬取页面的 HTML 内容?

    对于您所说的数据类型,最好的选择是使用分布式文件系统之一。 Google 自己为此创建了Google File System,这是一个分布式容错文件系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 2011-04-27
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      • 2013-11-13
      相关资源
      最近更新 更多