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构建出一种显著改善的搜索体验。[size=large][/size]

猜你喜欢

转载自grepee.iteye.com/blog/1278725