1703952385
1703952386
一个完整的搜索引擎技术框架,如图9-8所示,搜索引擎的技术架构,分成3个部分:信息采集、建立索引库、提供检索服务,下面我们分别来探讨这3部分内容。
1703952387
1703952388
1703952389
1703952390
1703952391
图9-8 搜索引擎技术架构
1703952392
1703952393
信息采集,在互联网中发现、搜集信息和数据。通常,这个步骤是通过爬虫(Crawler/Spider)抓取网页来实现的。每个独立的搜索引擎都有自己的网页抓取程序爬虫。爬虫Spider顺着网页中的超链接,从这个网站爬到另一个网站,通过超链接分析连续访问抓取更多网页。被抓取的网页被称之为网页快照。由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。
1703952394
1703952395
建立索引库,对收集到的信息进行提取和组织建立索引库。搜索引擎抓到网页后,还要做大量的预处理工作,才能提供检索服务。其中,最重要的就是提取关键词,建立索引库和索引。根据应用场景的不同,其他可能的处理还包括去除重复网页、分词(中文)、判断网页类型、分析超链接、计算网页的重要度/丰富度等。
1703952396
1703952397
提供检索服务,由检索器根据用户输入的查询关键字,提供检索服务。接受到关键词后,系统在索引库中快速检出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并将查询结果返回给用户。通常,为了用户便于判断,除了网页标题和URL外,还会提供一段来自网页的摘要及其他信息。
1703952398
1703952399
其实搜索已经是一项非常成熟的技术,这里不打算展开讨论了,只介绍几个在搜索技术架构上比较重要的技术点:分布式索引、分布式搜索。
1703952400
1703952401
分布式索引,就是通过很多普通配置的硬件,同时进行索引建立的工作,最后进行索引的合并操作。这样处理的好处在于,具备可扩展性,当数据增加的时候,无须增加单台机器的存储设备,而是通过水平扩展,增加配置普通的机器来解决。建立分布式索引,可采用Hadoop这类分布式系统进行构建,Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上;同时它提供高传输率来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS的上一层是MapReduce引擎,用于大规模数据集的并行运算。概念Map(映射)和Reduce(规约),和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。基于这些分布式特性,搜索索引建立可以非常容易地通过它来进行扩展。利用Hadoop的平台和MapReduce的机制,来实现建立分布式搜索索引,是非常好的实践。
1703952402
1703952403
分布式搜索,是将原来的单个索引文件划分成n个切片(shards)。搜索时,并行的搜索这n个切片,每个切片返回当前shard的topK命中结果;然后将n个切片的局部topK进行归并排序,得到全局的topK排序结果。分布式搜索的好处在于:更好的可扩展性,在用户访问次数和索引大小两个维度都具有水平扩展能力;更高的稳定性,容许部分失败,调用成功率显著提高;更灵活的全量更新策略,可针对不同类型的数据;更灵活的排序算法,可以针对不同类目,做定制化的排序;更好的可维护性和通用性,支持不同类型的搜索。
1703952404
1703952405
1703952406
1703952407
1703952409
技术管理之巅:如何从零打造高质效互联网技术团队? 9.2 最接地气的基础架构设计
1703952410
1703952412
9.2.1 大数据平台架构设计
1703952413
1703952414
上一节,我们学习了最接地气的应用架构设计,在学习过程中你已经发现了,里面用到了许多基础架构框架,如服务治理平台、分布式文件存储、大数据平台等。本节我们一起来探讨这些最接地气、最实用的基础架构,首先介绍的是大数据平台的架构设计。
1703952415
1703952416
近年来,大家对大数据的关注度和使用频率越来越高,软件产品中的各类数据都被记录下来,以便更好地研究和分析。在电商企业中,每天系统记录下来的运营数据,达到几百GB增量的规模,为了保证所有数据能集中存储并且可随时访问,越来越多的企业把离线数据体系从商用的Exadata等解决方案,全面转向开放的Hadoop体系当中,以谋求成本与扩展性的平衡。
1703952417
1703952418
有一定技术实力的互联网公司,纷纷搭建自己的大数据平台,如图9-9所示是一个典型的大数据平台的技术架构,下面我们一起来学习。从图9-9可以看到,大数据平台是由数据存储、数据同步分发、监控、离线计算、平台安全、资源申请等部分构成的。
1703952419
1703952420
1703952421
1703952422
1703952423
图9-9 大数据平台技术架构
1703952424
1703952425
数据存储,是整个大数据平台的基础,包含如:HDFS、HBase、Hive、MapReduce、Storm等等。下面,我们对其中的主要框架做些介绍,详细资料大家可以到搜索引擎中获取。
1703952426
1703952427
HDFS,分布式文件系统,Hadoop的核心组成部分。
1703952428
1703952429
MapReduce,分布式数据处理,Hadoop核心之一。
1703952430
1703952431
HBase,一个分布式的,列存储数据库,使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询。
1703952432
1703952433
Zookeeper,一个分布式的,高可用的协调服务。提供分布式锁之类的基本服务,用于构建分布式应用。
1703952434
[
上一页 ]
[ :1.703952385e+09 ]
[
下一页 ]