eBay 在 Hadoop 世界(Hadoop World) 大会的主题演讲中展示了一种全新的搜索引擎 Cassini 的架构,该引擎预计在 2012 年上线。它对所有的内容和用户的元数据进行索引来得到更好的排名,并每小时刷新索引。它使用 Apache Hadoop 来支持每小时进行的索引更新,使用 Apache HBase 对随机存取信息提供支持。Hugh E. Williams(eBay 交易市场的搜索平台和体验部门的副总裁)发表了演讲,介绍了项目的规模、使用的技术和完全重建 eBay 核心站点搜索过程中得到的经验。这次重建工作由 100 多位工程师耗时 18 个月完成。新 Cassini 平台将能支持:
- 9700 万活动的买家和卖家
- 每天 2.5 亿次查询
- 2 亿多件商品和 5 万多种分类
eBay 已经在 Hadoop 和 Teredata[1] 集群存储了 9PB 用来做分析的数据,但这将是生产环境里提供给用户直接使用第一个应用。新系统将会比当前的系统(Galileo)规模更大:
老系统: Galileo 新系统: Cassini 10 个排名因子 100 个排名因子 默认只匹配标题 默认使用所有字段匹配 上线、监测、修复需要人工干预 上线、监测、修复不需要人工干预 Cassini 将保留 90 天的历史数据在线——按照目前的规模是 10 亿条数据记录,包括用来做排名的用户和行为数据。支持搜索系统所需的大部分工作是由每小时在 Hadoop 上运行的批处理作业完成的。各种不同索引将在同一集群中生成(对 Galileo 的一项改进)。Hadoop 环境使 eBay 能够恢复或重新分类整个站点的库存,这是一项重大改进。
记录存储在 HBase 里,通常在每个小时索引更新的时候进行扫描。当一条新的记录上线,几分钟内就能从 HBase 里进行查询,并被加入实时索引里。HBase 还支持批量和增量写操作和快速读写记录注释。
Williams 提到,团队熟悉 Hadoop 的运维,系统运行很稳定,基本没出什么问题。与此相反,他指出 HBase 似乎很难驾驭。Williams 表示 eBay 仍然致力于使用该技术,向社区提交发现的问题的补丁。在过去的两个星期里,事情已经顺利很多了。团队对于使用 HBase 还是新手,在测试规模的时候遇到一些问题:
* 产品集群的负载配置
* 硬件问题
* 稳定性:不稳定的区域服务器,不稳定的主服务器,在切换的时候区域服务被堵塞
* 监控 HBase 的健康:往往直到问题影响到线上服务的时候才被发现,尽管团队已经加入大量的监控装置
* 管理多步 MapReduce 作业
总体来说,Williams 觉得项目虽然宏大,但是目前进展顺利,团队已经使用 Hadoop 和 HBase 构建出一种显著改善的搜索体验。
译注
[1] Teradata 是数据仓库创新和分析性解决方案开发领域公认的全球领先者. 主页: http://www.teradata.com
查看英文原文: eBay readies next generation search built with Hadoop and HBase
评论