Nut:Lucene+Hadoop的分布式搜索框架
需积分: 5 139 浏览量
更新于2024-09-13
收藏 149KB PDF 举报
"lucene + hadoop 分布式搜索运行框架 Nut 1.0a8"
Nut 是一个基于 Lucene 和 Hadoop 的分布式搜索框架,专为处理大规模索引(千G以上)而设计,能够提供全天候(7*24小时)的搜索服务。它在配置充足的服务器环境下,可以支持每秒处理一百万次的搜索请求。Nut 的开发环境包括 JDK 1.6.0.21、Lucene 3.0.2、Eclipse 3.6.1、Hadoop 0.20.2、Zookeeper 3.3.1、HBase 0.20.6、Memcached 以及 Linux 操作系统。
该框架的主要特点包括:
1. **热插拔**:允许在不影响系统运行的情况下,进行组件的添加或移除。
2. **可扩展性**:设计灵活,便于功能扩展。
3. **高负载处理**:能有效地处理大量并发搜索请求。
4. **易用性**:易于集成到现有的项目中,减少开发难度。
5. **支持排序**:用户可以根据需求对搜索结果进行排序。
6. **持续服务**:确保7*24小时不间断运行。
7. **失败转移**:当某个组件出现问题时,能够自动转移任务到其他可用组件,保证系统的稳定性。
Nut 框架主要由五个部分组成:
1. **Index**:负责索引的构建和维护。
2. **Search**:包含索引数据,仅处理搜索请求,数据存储在 DB 中。
3. **Client**:接收并处理用户的搜索请求,同时对搜索结果进行排序。
4. **Cache**:通常使用 Memcached 作为缓存系统,存储搜索条件和结果文档的 ID。
5. **DB**:默认使用 HBase 存储实际的数据,客户端根据排序后的文档 ID 从 DB 中获取数据。
搜索流程如下:
- 用户的搜索请求首先到达由 Nut Client 构成的集群。
- Nut Client 首先查询 Cache,如果找到匹配的缓存,则直接从 DB 获取数据。
- 若无缓存,请求会被发送到一组随机选择的 Search Group(包含 n 台搜索服务器)。
- 搜索服务器执行查询,并将结果返回给 Nut Client 进行排序。
- 排序后,将搜索条件和当前页的文档 ID 缓存,并从 DB 读取对应数据。
索引流程涉及两个主要操作:
1. **删除**:通过在 HDFS 上删除索引文件(生成 *.del 文件),并将其分发到所有索引服务器,或直接在 HDFS 索引目录上删除。
2. **添加**:新增数据在单独的服务器上生成索引,然后将新的索引分发到各个索引服务器。
- 这两个操作可以通过不同的定时策略来控制,以适应不同的数据更新需求。
通过这样的架构和流程,Nut 实现了高效的分布式搜索,兼顾了性能和可靠性,适合作为大规模数据的搜索引擎解决方案。
2009-07-29 上传
点击了解资源详情
2013-04-17 上传
2018-10-13 上传
2018-08-02 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-08-09 上传
weixin_38669628
- 粉丝: 386
- 资源: 6万+
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析