【51CTO.com原创稿件】WOT2016大数据峰会将于2016年11月25-26日在北京粤财JW万豪酒店召开,届时,数十位大数据领域一线专家、数据技术先行者将齐聚现场,在围绕机器学习、实时计算、系统架构、NoSQL技术实践等前沿技术话题展开深度交流和沟通探讨的同时,分享大数据领域***实践和最热门的行业应用。
记者在会前采访了百度网页搜索基础架构团队技术负责人颜世光,他是WOT2016大数据峰会上的发言嘉宾之一,与我们共同分享了关于海量计算以及搜索引擎的***技术。
颜世光于2011年加入百度,早期从事Spider系统架构相关研发,期间主持了百度第三代Spider系统的设计与实现。当前主要研究方向为大规模分布式系统,是百度海量数据库Tera、百度文件系统BFS和集群操作系统Galaxy的主要作者。他热衷开源,先后推动了百度多个重量级系统对外开源。以下是采访实录。
1. 作为国内***的搜索平台,您认为百度面临的***挑战是什么?目前是如何解决的?
百度面临的挑战有很多,我仅能谈下在网页搜索技术上面临的, 当前比较大的挑战是覆盖率和时效性。覆盖率可以认为是百度能检索到到的网页范围,越大越好。
时效性通俗讲是指互联网上产生一个新网页到百度能检索到它这段时间的延迟,越短越好;这两个挑战,一个要求处理的数据尽量多,另一个要求处理得尽量快,在表面看是冲突的。我们当前解决的方式是增量流式处理,不同于普通的流式处理技术,搜索引擎处理每一篇网页,网页的内容正确与否,网页权值(PageRank)大小,不只取决于它本身,而是要依赖互联网全局信息。
所以增量处理的核心是一个能存储互联网上所有网页、超链信息,并可以实时读写的数据库。这个数据库背后是百度文件系统、集群调度系统等一系列基础设施。
2. 在分布式技术出现之前,百度搜索依靠什么来进行计算?
在当前这套增量处理技术出来之前,百度主要依赖MapReduce和Spark做数据处理。两者都是批量计算的思想,所以延迟比较高。Spark能做到10分钟级,但能处理的数据量有限。对于依赖海量全局信息的计算只能用MapReduce进行,延迟达到周级。
MapReduce的局限还体现在扩展性上,如果处理100亿网页,需要1000台机器,那处理1万亿网页就得10万台,这几乎是不可承受的成本。
所以在此之前,无论是处理数据还是能处理的数据量,都受到了很大限制。
3.在万亿量级计算方面,百度有何经验与大家分享?
万亿量级的计算核心挑战在系统的扩展性和负载均衡。承载万亿量级的数据,无论是数据库、调度系统还是底层的分布式文件系统,都需要能高效地扩展到万台规模的集群,这里的主要考虑是无单点设计的同时又要保证一致性,最终多数系统选择了分布式的Master集群来管理元数据,用户数据与计算由对等的slave节点承载的方案。
针对负载均衡问题,我们会小心的处理局部的热点问题,因为一个区间热点可能拖慢整个计算任务。在系统的设计中,特别是数据库系统的设计中,做到快速的热点拆分和跨机器迁移。
多方面的考虑和折衷,具体的内容会在这次大会的演讲中和大家分享。
4.对于当前热门的开源技术您怎么看?
颜世光表示他在百度主要做开源项目,当前工作核心是百度开源基础架构(分布式存储、集群管理、网络通信框架),这是百度自主研发的,与hadoop生态对应的一套大数据处理平台。
百度文件系统BFS对应hadoop的HDFS,海量数据库Tera对应hadoop的HBase,分布式协调服务Nexus对应Zookeeper,集群调度系统Galaxy对应Yarn,计算框架shuttle对应MapReduce。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】