热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

百度高级架构师马如悦分享:我对Hadoop2.0的见解与经验

当计算任务越来越多,作业提交越来越多,企业普通的做法是,在原有的系统架构上,不停地往上堆积硬件或者加服务器。的确,hadoop设计上的优秀和可扩展性可以方便的

当计算任务越来越多,作业提交越来越多,企业普通的做法是,在原有的系统架构上,不停地往上堆积硬件或者加服务器。的确,hadoop设计上的优秀和可扩展性可以方便的让集群管理员对集群增删机器,所以当集群计算资源紧缺,又有空闲的机器可用时,集群管理员很


当计算任务越来越多,作业提交越来越多,企业普通的做法是,在原有的系统架构上,不停地往上堆积硬件或者加服务器。的确,hadoop设计上的优秀和可扩展性可以方便的让集群管理员对集群增删机器,所以当集群计算资源紧缺,又有空闲的机器可用时,集群管理员很容易想到给集群加机器来解决这个问题,因为集群的计算槽位增多了,Jobtracker能调度的槽位也多了,集群里能并行的map数和reduce数也增多了。

但是,当集群规模扩大到一定程度,比如3000台,再往上加机器,用户会发现,计算作业没有增多,本应该运行的更快的作业并没有比预期的快,有时候甚至跟加机器前跑的一样,集群的槽位是变多了,但是被调度用来跑 task的槽位总是用不满,jobtracker的cpu使用率始终保持100%,但是集群的计算槽位总是达不到饱和,即使集群在最繁忙的时候,槽位的使用率也只能达到比如60%,每一个时刻总有一部分的计算槽位是空闲的但是无法往上分配task任务。

这是雅虎Hadoop当前正面临的问题,Hadoop下一步在哪?百度的Hadoop架构又当如何扩展?这是摆在所有人面前的一个重要问题。

在CSDN 第九期的TUP活动上,百度的高级架构师马如悦为广大的CTO、技术主管们分析了百度的Hadoop 2.0,并就Hadoop在百度的未来发展作了精彩的陈述。

百度高级架构师马如悦:我的Hadoop2.0 - 文章图片

百度高级系统架构师马如悦

百度hadoop集群现状

据马如悦透露,百度从07年开始使用Hadoop做离线处理,目前有80%的Hadoop集群用作日志处理,同雅虎面临的相同麻烦是,Hadoop在百度经过5、6年发展之后,也已经走到了一个岔路口,在百度每天的作业数千万,平均一个作业可以按1000来算,每天的数据处理量在6TB左右,以Hadoop目前所能支持的服务器性能上限来看,大大低于了系统的需求。

他表示,“目前百度的Hadoop服务器规模是1万多台,已经超过了Yahoo和Facebook,明年计划将达到2万台。以百度目前如果的Hadoop服务器配置来看,12GB内存最大能支持3000多万系统文件,如果扩张到10亿文件,内存将占用380GB。”

目前百度的服务器大部分是价格在两到三万元左右的,标配12个1TB硬盘,32GB内存,没有RAID卡,没有采用高端的服务器。但是随着Hadoop集群规模扩张后,成本正呈线性上升,能耗、散热、还有一些不需要的设备,都是需要解决的成本问题。因此百度这几年一直在走服务器定制化的路线,以此降低整个系统成本。

百度Hadoop 2.0解决方案

实际上,Yahoo最近已经公开了一篇博客,关于Hadoop重构的问题,在博客中,雅虎写道,集群的规模达到4000台机器的时候,Hadoop正遭遇到扩展性的瓶颈,MapReduce的JobTracker需要彻底改革,以解决其可扩展性,内存消耗,线程模型,可靠性和性能的几个缺陷。

百度高级架构师马如悦:我的Hadoop2.0 - 文章图片

百度高级架构师马如悦:我的Hadoop2.0 - 文章图片

百度高级架构师马如悦:我的Hadoop2.0 - 文章图片

而百度也在对其Hadoop集群进行技术革新,马如悦称其为Hadoop 2.0。

“百度的目标是10万节点,而且需要充分考虑跨机房部署的问题”,他表示“百度和雅虎在Hadoop上的研发区别在于,雅虎需要不断对Hadoop的扩展上限进行研发,而百度的研发着力点在于如果已经到了规模上限,那么需要进行拆分。”

马如悦谈到,Hadoop2.0主要是解决Hadoop主节点的Scalability的问题。Scalability现在的问题,有3000多万文件,内存占用12GB。如果扩张10亿文件,内存占用380GB。负载的话,集群规模扩大后,这种压力是3000台左右。

“存储一般分为块式存储,做云计算公司挂在一些虚拟机,挂到本地作为本地系统。上面还有分布式对象存储,很多用来存储像淘宝图片都是用分布式对象去存储。上面是分布式文件系统可以做很多工作,用户应用起来会好很多,但是他的扩展性会差很多。”

“将存储设备拆分成两层进行分别管理”,马如悦说道“这是Hadoop 2.0解决方案的理论原理。为了解决Hadoop的扩展性问题,在数据存储上,百度专门设立了一个对账管理层,目的在于将文件对象管理服务做到水平扩展,当某一用户将数据放在上面后可以给一个唯一标识,用户可以有自己的选择,“对账管理层的关键在于文件对象管理服务可以实现水平扩展,但难点在于扩展性的问题”。

他表示,在此架构中,由于NameSpace(名称空间)全在文件对象管理中,因此到逻辑对象中的负载降了很多,这就很便于做未来的扩展性设计。

1、分布式存储对象是S3,这是没有树状结构的NameSpace,二层命名空间从kb到GB都可以实现支持,这是百度线上评估的负载,内存10亿文件,10亿快文件约66GB,目录约1GB。

2、原来90GB只能支持1亿文件,而现在66GB可以支持到10亿文件

3、大规模耗能操作放到了对象管理层之上,因为是水平扩展,所以压力不大。

4、Namespace只占容量的13.7%。

百度高级架构师马如悦:我的Hadoop2.0 - 文章图片

百度高级架构师马如悦:我的Hadoop2.0 - 文章图片

Hadoop并非万能

在马如悦看来,业界对于分布式存储架构还存在着一些误区,比如,大家通常认为Hadoop集群规模越大越好。

“Hadoop集群规模不是越大越好,Mapreduce的好处在于共享,资源利用充分,但实现的前提在于底层的HDFS副本的放置策略,目前来看,Hadoop的放置策略不是很好。1000台机器,如果同时宕掉三台,一定会有副本丢失,这是Hadoop不好的地方,如果从1000台服务器中挑选三台机器,会发现相同的块有三四个。这是HDFS不好的地方。”

百度高级架构师马如悦:我的Hadoop2.0 - 文章图片

“如果将1000台服务器分成十组,每组100台机器,建议用户不要将数据分布于所有机器上”,马如悦表示,“100台就可以满足副本文件的存储需求。如果三个机器放到任何一个组里都不会丢数据。但是对百度来说,一旦真的丢失数据——10G、20G问题都差不多,一样严重。平常三个副本宕机正好撞到在一个小组的几率毕竟很少,因此,Hadoop现有放置副本不是最好,假设放置均匀库,理想中放置副本是需要要随机放置的。”

而Hadoop目前另一个缺陷在于数据的层次化管理,很多数据读取很高,写入却很小,因此对数据的时效性要求很高,并且要求能海量处理几PB的数据,这是Hadoop目前不太容易实现的。


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
author-avatar
手机用户2502924457
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有