全文检索千亿数据检索框架-nutla
参考资料:http://code.google.com/p/nutla/
- 核心结构: lucene + hadoop 分布式搜索运行框架
- 概述
不管程序性能有多高,机器处理能力有多强,都会有其极限。能够快速方便的横向与纵向扩展是Nut设计最重要的原则,以此原则形成以分布式并行计算为核心的架构设计。以分布式并行计算为核心的架构设计是Nut区别于Solr、Katta的地方。
Nut是一个Lucene+Hadoop分布式并行计算搜索框架,能对千G以上索引提供7*24小时搜索服务。在服务器资源足够的情况下能达到每秒处理100万次的搜索请求。 Nut开发环境:jdk1.6.0.23+lucene3.0.3+eclipse3.6.1+hadoop0.20.2+zookeeper3.3.2+hbase0.20.6+memcached+mongodb+linux
- 特新
a、热插拔 b、可扩展 c、高负载 d、易使用,与现有项目无缝集成 e、支持排序 f、7*24服务 g、失败转移
- 搜索流程 Nut由Index、Search、Client、Cache和DB五部分构成。(Cache实现了对memcached的支持,DB实现了对hbase,mongodb的支持) Client处理用户请求和对搜索结果排序。Search对请求进行搜索,Search上只放索引,数据存储在DB中,Nut将索引和存储分离。Cache缓存的是搜索条件和结果文档id。DB存储着数据,Client根据搜索排序结果,取出当前页中的文档id从DB上读取数据。
用户发起搜索请求给由Nut Client构成的集群,由某个Nut Client根据搜索条件查询Cache服务器是否有该缓存,如果有缓存根据缓存的文档id直接从DB读取数据,如果没有缓存将随机选择一组搜索服务器组(Search Group i),将查询条件同时发给该组搜索服务器组里的n台搜索服务器,搜索服务器将搜索结果返回给Nut Client由其排序,取出当前页文档id,将搜索条件和当前文档id缓存,同时从DB读取数据。
- 索引流程 Hadoop Mapper/Reducer 建立索引。再将索引从HDFS分发到各个索引服务器。 对索引的更新分为两种:删除和添加(更新分解为删除和添加)。 a、删除 在HDFS上删除索引,将生成的.del文件分发到所有的索引服务器上去或者对HDFS索引目录删除索引再分发到对应的索引服务器上去。 b、添加 新添加的数据用另一台服务器来生成。 删除和添加步骤可按不同定时策略来实现。
- Nut分布式并行计算特点 Nut分布式并行计算虽然也是基于M/R模型,但是与Hadoop M/R模型是不同的。在Hadoop M/R模型中 Mapper和Reducer是一个完整的流程,Reducer依赖于Mapper。数据源通过Mapper分发本身就会消耗大量的I/O,并且是消耗I/O最大的部分。所以Hadoop M/R 并发是有限的。 Nut M/R模型是将Mapper和Reducer分离,各自独立存在。在Nut中 索引以及索引管理 构成M,搜索以及搜索服务器组 构成 R。 以一个分类统计来说明Nut分布式并行计算的流程。假设有10个分类,对任意关键词搜索要求统计出该关键词在这10个分类中的总数。同时假设有10组搜索服务器。索引以及索引管理进行索引数据的Mapper,这块是后台独自运行管理的。Nut
Client将这10个分类统计分发到10组搜索服务器上,每组搜索服务器对其中一个分类进行Reducer,并且每组搜索服务器可进行多级Reducer。最后将最终结果返回给Nut Client。
- Zookeeper服务器状态管理策略
在架构设计上通过使用多组搜索服务器可以支持每秒处理100万个搜索请求。 每组搜索服务器能处理的搜索请求数在1万—1万5千之间。如果使用100组搜索服务器,理论上每秒可处理100万个搜索请求。
假如每组搜索服务器有100份索引放在100台正在运行中搜索服务器(run)上,那么将索引按照如下的方式放在备用中搜索服务器(bak)上:index 1,index 2,index 3,index 4,index 5,index 6,index 7,index 8,index 9,index 10放在B 1 上,index 6,index 7,index 8,index 9,index 10,index 11,index 12,index 13,index 14,index 15放在B 2上。。。。。。index
96,index 97,index 98,index 99,index 100,index 5,index 4,index 3,index 2,index 1放在最后一台备用搜索服务器上。那么每份索引会存在3台机器中(1份正在运行中,2份备份中)。 尽管这样设计每份索引会存在3台机器中,仍然不是绝对安全的。假如运行中的index 1,index 2,index 3同时宕机的话,那么就会有一份索引搜索服务无法正确启用。这样设计,作者认为是在安全性和机器资源两者之间一个比较适合的方案。
备用中的搜索服务器会定时检查运行中搜索服务器的状态。一旦发现与自己索引对应的服务器宕机就会向lock申请分布式锁,得到分布式锁的服务器就将自己加入到运行中搜索服务器组,同时从备用搜索服务器组中删除自己,并停止运行中搜索服务器检查服务。
为能够更快速的得到搜索结果,设计上将搜索服务器分优先等级。通常是将最新的数据放在一台或几台内存搜索服务器上。通常情况下前几页数据能在这几台搜索服务器里搜索到。如果在这几台搜索服务器上没有数据时再向其他旧数据搜索服务器上搜索。 优先搜索等级的逻辑是这样的:9最大为搜索全部服务器并且9不能作为level标识。当搜索等级level为1,搜索优先级为1的服务器,当level为2时搜索优先级为1和2的服务器,依此类推。
来源网址:http://blog.csdn.net/yjflinchong/article/details/8158024
lucene + hadoop 分布式搜索引擎——nutla
分享到:
相关推荐
抓取策略--Web信息检索与数据抓取-反向链接数策略--拓展.pdf抓取策略--Web信息检索与数据抓取-反向链接数策略--拓展.pdf抓取策略--Web信息检索与数据抓取-反向链接数策略--拓展.pdf抓取策略--Web信息检索与数据抓取-...
抓取策略--Web信息检索与数据抓取-反向链接数策略--拓展.ppt抓取策略--Web信息检索与数据抓取-反向链接数策略--拓展.ppt抓取策略--Web信息检索与数据抓取-反向链接数策略--拓展.ppt抓取策略--Web信息检索与数据抓取-...
智周个人知识库--全文检索及标注系统 这是一个利用 lucene.net 技术开发的程序。用于查询个人计算机中的文件信息,包含了全文检索及标注系统。 随着计算机中文件的累积,常会有查找不易的问题。 解决方法1:”...
项目源码----全文检索案例
SQL-SERVER-2008检索数据表数据ppt课件.pptx
全文检索系统
搜索引擎-信息检索实践W.Bruce.Croft等.扫描版.pdf
网络游戏-用于检索配置相关数据的网络系统.zip
NULL 博文链接:https://wuquanyin1011.iteye.com/blog/799342
UCAS 信息检索导论大作业--新闻检索系统 目标:定向采集不少于4个中文社会新闻网站或频道,实现这些网站新闻信息的自动爬取、抽取、索引和检索。 具体要求: : 新闻网页数目不少于5万页,新闻信息能在一天之内...
项目五 信息检索 中职《信息技术》项目五---信息检索全文共45页,当前为第1页。 项目导读 信息检索是人们获取信息的重要方法和手段,也是人们查找信息的主要方式。掌握网络信息的高效检索方法,是现代信息社会对高...
我因为做项目去年也开始学习全文检索的内容,并通过自己的实际开发,对全文检索的算法有了较深入的了解,这里一并写成PPT,作为附件放在程序开发包里供大家参考。我很讨厌写算法就复制粘贴代码的人,不同的语言环境...
工业和信息化精品系列教材 信息技术(基础模块) 信息检索 模块四 信息技术基础-信息检索全文共42页,当前为第1页。 目录 认识信息检索 搜索引擎的使用 专用平台的信息检索 任务一 任务二 任务三 信息技术基础-信息...
SQL专家门诊源代码---全文索引和全文检索.rar
:本文在开源(Open Souroe)项目Jakarta ...一种可扩展的全文检索框架,该框架可高效地对XML、HTML、/VLS Word、PDF等格式的文档进行全文检索。整个框 架完全基于开源工具包,可以有效地对信息系统的开发进行支持。
要求实现一个检索系统,读取查询文件并输出每条查询最为匹配的 10 条数据编号。 查询文件每行的格式为 编号\t查询 ,编号以 Q 开始;提供训练用的含有29个查询的查询文件 data/query_train.txt ,编号 Q1205-Q1229...
音乐检索的主要方法是基于内容的检索,即利用音乐的音符、旋律、节奏、歌曲风格等语义级的特征或者声学层特征从数据库中检索乐曲。本研究专题使用基于信号频谱分析的方法实现音乐检索。
拼音检索 ListView 实现拼音检索ListView的简单功能.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Lucene 是为文本类型的数据建立索引的,所以只要能把需要索引的数据格式转化的文本的,Lucene 就能对文档进行索引和搜索。比如HTML、PDF,都可以转换文本再交给Lucene进行索引。
博客网站检索系统,框架:Springboot + ElasticSearch+Tkmybatis+vue ElasticSearch:elasticsearch-6.3.2 下载地址:https://www.elastic.co/cn/downloads/elasticsearch Logstash: logstash-6.3.2(同步mysql...