`
shixin42
  • 浏览: 55266 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sensei indexing via hadoop

 
阅读更多
构建索引一般是比较费时费力的过程,如果能通过hadoop分布式构建索引就方便了很多。
基于sensei的索引都是分shard的,通过sensei提供的工具类,可以在hadoop集群中分shard构建索引,下面简单介绍一下,因为没有文档,只是简单过了一下source code:

1 定义properties文件,定义配置选项
PropertiesLoader可以生成配置文件类Configuration

2 自定义的job类要继承MapReuceJob, 调用MapReuceJob.createJob()方法可以得到JobConf对象,JobConf对象是hadoop可运行的任务。

MapReuceJob.createJob方法比较重要,它会读取第一步生成的Configuration类,进行一系列初始化操作,并生成可运行的JobConf对象。

createJob方法最重要的工作就是生成shards(分区),一般来说,shards的数量是配置文件中配置好的,但是为了充分利用hadoop集群的性能,不光要考虑到sensei的node数量,也要考虑到hadoop集群中reducer的理论最大数量。Shard类是一个比较重要的类,但是对使用者透明。

关于hadoop任务的任何配置信息的处理过程都可以在MapReuceJob.createJob方法中找到。

3 SenseiMapper类,它在初始化的时候要构建这几样东西:
Shard[], 从JobConf中读取已经在第二步构建好的shards属性,重新构建。
ShardingStrategy 分区策略,用户要自己实现这个接口,mapper会使用这个进行分区
MapInputConverter 预处理mapper的输入,用户也要自己实现这个接口,把文本内容返回成JSONObejct格式的内容。
DefaultJsonSchemaInterpreter, 这个类会读取sensei的schema文件,这样在知道如何根据schema中的定义对jsonObject进行索引
Analyzer分词器,我们要使用自己的中文分词器(!?)

mapper的输出格式是Shard和IntermediateFrom, 比较重要的数据结构。不同的分区的document此时已经按Shard为key分发到不同的reducer上面,这样reducer就可以直接进行写文件了。(这个思路可以用于以后我们自己写分布式系统的时候)

4 SenseiCombiner
5 SenseiReducer, 使用IndexWriter写索引的过程了,比较简单。

先这样,再补充
分享到:
评论

相关推荐

    sensei-hadoop-indexing-1.6.0.zip

    【标题】"Sensei Hadoop Indexing 1.6.0" 这个压缩包" sensei-hadoop-indexing-1.6.0.zip"是针对一个名为Sensei的开源项目的特定版本,专注于在Hadoop环境中进行索引操作。Sensei是一个高性能、可扩展的数据搜索...

    Sensei.unitypackage

    Sensei.unitypackage

    sensei, 分布式实时搜索数据库.zip

    sensei, 分布式实时搜索数据库 什么是 Sensei( http://www.senseidb.com/ )Sensei是一个分布式的弹性实时搜索数据库。维基维基在以下位置可用:http://linkedin.jira.com/wiki/display/SENS

    Sensei for Mac v1.2.1 中文版 系统性能优化及清理工具

    Sensei mac版,是一款系统性能优化及清理工具,提供了一些与硬件和软件相关的功能,例如超级易于使用的应用程序卸载程序,快速的磁盘清理程序,电池和存储驱动器的运行状况信息等等,帮助您优化,监控和清洁Mac,以...

    赛睿SteelSeries Sensei RAW游戏鼠标驱动程序 最新版

    赛睿SteelSeries Sensei游戏鼠标驱动程序,是赛睿鼠标的官方驱动程序,支持WINXP/WIN7/WIN8驱动【32/64位】有需要的小伙伴赶紧下载吧。Steelseries Sensei游戏鼠标拥有一个32位的ARM处理器,运算速度相当于英特尔...

    react-sensei:清理React UI组件库

    Sensei是为前端React开发人员构建的UI组件库。 主要重点是快速创建干净的响应式仪表板! 安装 Sensei依赖于整个应用程序被包装在带有单个主题道具的SenseiProvider组件中。 1.安装react-sensei Sensei现在可以通过...

    Sensei:Sensei LMS WordPress插件

    Sensei LMS是可从获得的商业插件。 该插件托管在公共的Github存储库中,以便更好地促进开发人员和用户的社区贡献。 如果您有建议,错误报告或问题补丁,请随时在此处提交(遵循以下准则)。 但是,我们确实要求,...

    Sensei_1.3.3像鲁大师一样.dmg

    Sensei,像鲁大师一样

    sensei:WooThemes Sensei 插件

    "Sensei:WooThemes Sensei 插件" 是一个基于WordPress的教育平台插件,由WooThemes开发。WooThemes是一家知名的WordPress主题和插件提供商,而Sensei则是他们专为在线教学和学习设计的一款工具。 【描述分析】 ...

    【最新版】Sensei.dmg 1.1.8,24【亲测可用】最好的Mac性能工具

    下一代Mac性能工具 绩效仪表板 详细的电池报告器 磁盘清理器 散热仪表板 主题支持 应用程式解除安装程式 详细的硬件信息 温度监控器 GPU显示器 性能优化 CPU监控器 定制设计 ...GPU固件导出器

    SENSEI:表面运行对Sub-GeV暗物质的第一个直接检测约束

    次电子噪声Skipper CCD实验仪器(SENSEI)使用最新开发的Skipper-CCD技术,从次GeV暗物质粒子与硅中电子的相互作用中寻找电子反冲。 我们报告了原型SENSEI检测器的第一个结果,该检测器在费米国家加速器实验室的地面...

    jQuery数据网格库SenseiGrid.zip

    Sensei Grid 是简单的数据网格库,使用 JavaScript 编写。i 目标: 简单 极小的代码基础 扩展性 稳定性 在线演示 标签:Sensei

    sensei:https的替代品

    Sensei 旨在替代 ,使用更简单和更新的堆栈。 它在功能方面并不符合标准,但已准备好进行试驾。 安装 使用发布的 Docker 镜像 :spouting_whale: 使用docker image pull zenika/sensei 创建别名sensei alias ...

    Sensei's Library on Tour-开源

    Sensei的游览图书馆(SLoT)是一种便捷的Java工具,可将Wiki转储转换为一组精简HTML页面,可轻松地在手持式设备或电子书阅读器上阅读。

    Sudoku Sensei-开源

    《Sudoku Sensei——开源的数独导师》 数独,一种广受欢迎的逻辑游戏,以其独特的挑战性和无尽的乐趣吸引了无数爱好者。然而,对于初学者或是寻求提升解题技巧的人来说,有时候会遇到困难,不知道如何继续。这就是...

    sensei:Sensei是一个简单的命令行工具,可以打开crates.io中任何包装箱的文档

    Sensei是一个简单的命令行工具,可以打开crates.io中任何包装箱的文档。 安装 cargo install sensei 用法 sensei <crate> [OPTIONS] [FLAGS] 选项 -v, --version <version> Opens documentation for a specific ...

    opnsense_grafana_dashboard:适用于OPNsense和插件Sensei的Grafana仪表板

    适用于OPNSense和Sensei的Grafana仪表板适用于OPNsense和插件Sensei的Grafana仪表板要求ELK堆栈7+ OPNsense的Telegraf配置Grafana和InfluxDBGrafana插件镁字云面板flant-statusmap-panel 格拉纳纳-皮埃哈特(panana...

    Lazy Sensei-crx插件

    《Lazy Sensei-crx插件详解与应用》 在当今数字化的世界中,互联网为我们提供了海量的信息,尤其是在动漫领域,各种角色、剧情和评论无处不在。为了帮助动漫爱好者更好地跟踪和了解他们喜欢的角色,"Lazy Sensei-...

Global site tag (gtag.js) - Google Analytics