"本次演讲由百度的马如悦在架构师大会上分享了百度的部分分布式系统,包括计算平台、存储平台和可能的数据平台。主要聚焦于百度如何利用高性能计算(HPC)和分布式计算(DC)解决大规模数据处理问题,以及在分布式存储(DS)上的实践。"
**百度的数字**
百度作为一家大型互联网公司,拥有大量的计算资源。其HPC集群大约有200台服务器,每台服务器配备8个核心和16GB到64GB的内存。而DC(MapReduce计算)则分布在超过10个集群中,总计4000台服务器,每个服务器配置8核、16GB内存和12个1TB硬盘。最大的集群包含1000台服务器,每天处理的数据量超过2.5PB,运行的作业数量超过3万个。
**计算平台**
百度的计算平台分为两类:HPC和DC。HPC主要用于处理通信密集型任务,如分类、聚类、回归和矢量计算,涉及算法描述层和执行层,其中执行层通过HPCscheduler和agent进行调度。DC则针对数据和计算密集型任务,采用MapReduce模型,支持SQL-like的表示层,通过DCscheduler和agent进行作业调度,并采用DAG(有向无环图)来管理任务依赖。
**HPC**
HPC包括单机和多机两种形式。单机HPC利用多核、GPU或FPGA进行加速;多机HPC则依赖MPI(Message Passing Interface)进行通信。百度还提供机器学习算法服务,结合单机HPC、多机HPC和MapReduce。这些技术广泛应用于商务搜索和BaiduNews等业务。
**DC**
DC平台基于Abaci,这是一个结合了Hadoop MapReduce和百度自主系统的框架。它提供了DISQL(一种类似SQL的查询语言)、Master+Agent的调度机制,以及workflow元调度、数据分发服务等功能。计算层包括Streaming用于文本处理,Bistreaming处理二进制数据,以及HCE(Hadoop C++ Extension),旨在提高性能并优化Java语言的效率,通过Jira跟踪MapReduce-1270等相关开发工作。
**存储平台**
百度的分布式存储平台(DS)在使用时平均达到70%的容量利用率。虽然具体细节未详述,但可以推测它是一个高可用、高扩展性的分布式文件系统,可能类似于Hadoop的HDFS,用于存储海量数据。
**总结**
百度的分布式系统设计展示了其在处理大规模数据时的先进性和灵活性。通过结合HPC和DC,以及优化的分布式存储解决方案,百度能够高效地处理PB级别的数据,支持各种复杂的计算任务,满足其搜索引擎和其他在线服务的需求。同时,HCE的引入表明百度在追求更高的计算效率和性能上持续进行技术创新。