eBay使用Hadoop和HBase成功构建下一代搜索

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构建出一种显著改善的搜索体验。(译者 詹涛)