百度作为中国互联网行业的领军企业,在处理大数据方面有着独到的经验和技术积累。本知识点将详细介绍百度所使用的Hadoop与Hypertable系统的最新工作进展,以及它们的运行情况和未来计划。
了解百度的Hadoop系统运行情况,该系统运行在一个大约有500台机器的集群上,存储总量大约为6PB,计算能力达到大约4000个CPU核心。该系统每周处理的输入数据量高达1.5至2PB,作业数量大约为每周3万次。它主要承载线上实时计算、线下挖掘计算、线下调研计算以及纯数据存储应用。
Hadoop工作总结部分提到,百度对Hadoop系统进行了若干项优化。引入了新的压缩算法,比如quicklz和lzma,它们分别提高了压缩与解压的速度和压缩率。针对tasktracker出错分区问题,百度通过跳过错误分区来减少任务频繁失败的问题。在心跳线程问题上,百度计划减轻心跳线程承载的工作量,并探讨了心跳线程独立化的可能性。
百度还对speculative任务执行策略进行了修改,采用速率的倒数和增加任务达到特定百分比的限制来启动预测执行,解决了Reduce运行时间中的等待问题。MapReduce性能也得到了优化,通过减少重复打开spill文件的次数提高了效率,并缩短了处理时间。在DFSClient的块副本选择逻辑上,通过增加跳过错误datanode的功能,提升了系统在datanode失效时的写入成功率。
Hadoop工作计划部分强调了新作业调度器的开发,提出了基于Capacity调度器的新调度器设计,其特点包括队列具有优先级和动态伸缩的capacity设置。同时,百度还在解决NameNode内存问题,计划开发新的DFSClient Lease管理逻辑,并且正在研究使用linux的cgroup技术来对mapper和reducer程序的资源进行控制。
另外,百度也提到了Hypertable的运行情况和工作总结。Hypertable的集群规模大约为50台机器,总存储量约为100TB,索引总量在压缩后约13TB。当前Hypertable主要用于用户行为分析类应用和监控类数据存储查询,尚未与Hadoop结合进行mapreduce计算,也没有应用到线上服务。Hypertable的工作总结提到了对Hypertable社区的贡献,开发了基于hypertable-*.*.*.*的hypertable-v3版本,实现了安全停机和启动功能,并支持localrecovery。
百度还计划进一步优化Datanode的并发数据读写机制,从多线程读写改为select方式,以支持大规模并发读写,更好地适应大数据应用的需求。此外,百度与Hadoop生态系统的合作也在进行中,希望能够与更多合作伙伴共同推进大数据技术的发展。
百度在Hadoop与Hypertable系统上的最新工作进展显示了公司对于大数据处理的重视,同时也反映了百度在存储、计算和优化方面所做的努力。未来计划的多个方向,包括调度器开发、资源控制、读写优化等,都指向了一个明确的目标:提高效率,优化性能,以及扩大应用范围。通过这些举措,百度不仅在为自身业务提供支持,也为业界提供可借鉴的经验和实践。