【IT168 案例】在eBay上存储着上亿种商品的信息,而且每天有数百万种的新商品增加,因此需要用云系统来存储和处理PB级别的数据,而Hadoop则是个很好的选择。
Hadoop是建立在商业硬件上的容错、可扩展、分布式的云计算框架,eBay利用Hadoop建立了一个大规模的集群系统—Athena,它被分为五层(如下图所示),下面从最底层向上开始介绍:
1)Hadoop核心层,包括Hadoop运行时环境、一些通用设施和HDFS,其中文件系统为读写大块数据而做了一些优化,如将块的大小由128MB改为256MB。
2)MapReduce层,为开发和执行任务提供API和控件。
3)数据获取层,现在数据获取层的主要框架是HBase、Pig和Hive:
·HBase是根据Google BigTable开发的按列存储的多维空间数据库,通过维护数据的划分和范围提供有序的数据,其数据储存在HDFS上。
·Pig(Latin)是提供加载、筛选、转换、提取、聚集、连接、分组等操作的面向过程的语言,开发者使用Pig建立数据管道和数据工厂。
·Hive是用于建立数据仓库的使用SQL语法的声明性语言。对于开发者、产品经理和分析师来说,SQL接口使得Hive成为很好的选择。
4)工具和加载库层,UC4是eBay从多个数据源自动加载数据的企业级调度程序。加载库有:统计库(R)、机器学习库(Mahout)、数学相关库(Hama)和eBay自己开发的用于解析网络日志的库(Mobius)。
5)监视和警告层,Ganglia是分布式集群的监视系统,Nagios则用来警告一些关键事件如服务器不可达、硬盘已满等。
eBay的企业服务器运行着64位的RedHat Linux:
·NameNode负责管理HDFS的主服务器;
·JobTracker负责任务的协调;
·HBaseMaster负责存储HBase存储的根信息,并且方便与数据块或存取区域进行协调;
·ZooKeeper是保证HBase一致性的分布式锁协调器。
用于存储和计算的节点是1U大小的运行Cent OS的机器,每台机器拥有2个四核处理器和2TB大小的存储空间,每38~42个节点单元为一个rack,这组建成了高密度网格。有关网络方面,顶层rack交换机到节点的带宽为1Gbps,rack交换机到核心交换机的带宽为40Gpbs。
这个集群是eBay内多个团队共同使用的,包括产品和一次性任务。这里使用Hadoop公平调度器(Fair Scheduler)来管理分配、定义团队的任务池、分配权限、限制每个用户和组的并行任务、设置优先权期限和延迟调度。
数据流的具体处理过程如上图所示,系统每天需要处理8TB至10TB的新数据,而Hadoop主要用于:
·基于机器学习的排序,使用Hadoop计算需要考虑多个因素(如价格、列表格式、卖家记录、相关性)的排序函数,并需要添加新因素来验证假设的扩展功能,以增强eBay物品搜索的相关性。
·对物品描述数据的挖掘,在完全无人监管的方式下使用数据挖掘和机器学习技术将物品描述清单转化为与物品相关的键/值对,以扩大分类的覆盖范围。
·eBay的研究人员在系统构建和使用过程中遇到的挑战及一些初步计划有以下几个方面:
·可扩展性,当前主系统的NameNode拥有扩展的功能,随着集群的文件系统不断增长,需要存储大量的元数据,所以内存占有量也在不断增长。若是1PB的存储量则需要将近1GB的内存量,可能的解决方案是使用等级结构的命名空间划分,或者使用HBase和ZooKeeper联合对元数据进行管理。
·有效性,NameNode的有效性对产品的工作负载很重要,开源社区提出了一些备用选择,如使用检查点和备份节点、从Secondary NameNode中转移到Avatar节点、日志元数据复制技术等。eBay研究人员根据这些方法建立了自己的产品集群。
·数据挖掘,在存储非结构化数据的系统上建立支持数据管理、数据挖掘和模式管理的系统。新的计划提议将Hive的元数据和Owl添加到新系统中,并称为Howl。eBay研究人员努力将这个系统联系到分析平台上去,这样用户可以很容易地在不同的数据系统中挖掘数据。
·数据移动,eBay研究人员考虑发布数据转移工具,这个工具可以支持在不同的子系统如数据仓库和HDFS之间进行数据的复制。
·策略,通过配额实现较好的归档、备份等策略(Hadoop现有版本的配额需要改进)。eBay的研究人员基于工作负载和集群的特点对不同的集群确定配额。
·标准,eBay研究人员开发健壮的工具来为数据来源、消耗情况、预算情况、使用情况等进行度量。
同时eBay正在改变收集、转换、使用数据的方式,以提供更好的商业智能服务。
作者简介:陆嘉恒,《Hadoop实战》作者,中国人民大学副教授,新加坡国立大学博士,美国加利福尼亚大学尔湾分校(University of California, Irvine) 博士后。