InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

百度技术沙龙第2期回顾:分布式与服务扩展(含演示文档下载)

作者 刘申 发布于 2010年5月19日

领域
语言 & 开发,
架构 & 设计,
运维 & 基础架构,
企业架构
主题
扩展性 ,
运维 ,
系统监测 ,
架构 ,
专题报道 ,
企业架构 ,
Web服务 ,
平台
标签
存储技术 ,
分布式编程 ,
数据存储 ,
性能调优 ,
弹性计算集群 ,
QClub ,
Hadoop

在百度技术沙龙第2期(5月15日)的活动上,我们邀请到了百度分布式高级工程师马如悦以及FreeWheel的核心系统技术总监王迪分别分享了关于分布式以及服务扩展两个话题,本文将对他们的演讲内容进行一下简单的总结,并为大家提供了演示文档的下载

为Hadoop的发展贡献自己的力量

在马如悦的演讲中,他主要介绍了百度的大规模数据存储、数据分析以及数据索引,主要包括以下内容点:

  • 大规模数据存储
    • Lustre和HDFS
    • 系统结构
    • HDFS优势、不足
  • 大规模数据分析
    • MPI和MapReduce
    • MapReduce概念模型、实现模型
    • MapReduce-Hadoop实现
  • 大规模数据索引
    • MySQL和HBase对比
    • HBase详解
  • 在以上三方面百度遇到的问题、对策和原则

其中,马如悦提到,百度现在要处理的数据量非常庞大:存储20PB+数据,每日新增数据10TB+,每天处理的数据1PB+,每天提交10K+次作业。现在使用的文件系统是HDFS,数据存储是HBase,有超过2K台服务器节点,每个节点为2*4 core。现在遇到的一个棘手问题便是namenode的瓶颈问题:因为要存储大量的(小)文件,使namenode的压力非常大,他们刚刚采购了48GB的内存,但是这48GB的内存,预计只能坚持到今年年底,到时候,可能会采购96GB的内存来紧急应对这个问题。所以百度在namenode的分布式方面,进行了很多研究。马如悦建议大家:

如果对这方面感兴趣的话,可以参考Linux 2.6.34中的Ceph文件系统,它就是一个基于PB规模的分布式文件系统。

最后,马如悦提到了百度目前正在重点研究/解决的几个问题/方向,他建议如果大家想对Hadoop做出一些成绩的话,这几个方向也是现在的热点:

  • HDFS namenode的分布式改进
  • HDFS datanode的读写异步化
  • MapReduce的jobtracker的分布式改进
  • MapReduce的新作业和任务调度器
  • MapReduce的Hadoop C++扩展框架

有读者对Hadoop C++的扩展非常感兴趣,马如悦对此阐述了一下百度Hadoop的使用方式:

我们会定期在Hadoop的官方版本上找到一个稳定版本,然后进行自定义开发。过一段时间,当我们发现官方的版本如果增加了很多新增加的功能,比我们好很多,我们再开一个新的分支,把我们的功能移上去。我们的工程师在开发Hadoop的C++扩展,我们大概是在0.19版分出来的,至今我们发现chunk版本仍然跑不过百度自己的版本,所以我们不会去做移植。HCE在我们的版本上开发的,所以如果转移到chunk上,会有些难度,需要做一些调整,这会花费一些时间。上周我们工程师刚完成了一个版本,马上就可以为大家贡献出一个链接去试用。

以数据驱动为中心

王迪是FreeWheel核心系统的技术总监,从07年FreeWheel创立起,他全程参与到其广告核心系统的架构设计,也见证了FreeWheel从最初的的只有20台广告服务器、日均几十万的访问量、不到1G/天的日志量,发展到现在拥有60台广告服务器、日均广告请求5000万次、日志处理服务器8台、日均4小时处理日志200G这么一个规模。3年之间,流量增长20倍。他主要谈到了以下的一些经验和原则:

  • 应用服务扩展
    • 无状态应用服务
    • 复制与多层次Cache
  • 数据仓库扩展
    • De-normalization/Pivot
    • Roll up/Data Availability
    • Benchmarking与查询优化
    • Split-Loading/Sharding
  • 运营原则
    • 50%运行负载上限 & N+1 Data Center
    • 监控和响应
    • 多阶段部署

很多具体的实践方法,都是针对他们具体的商业模式以及实际工作中摸索出来的,它不一定是“最好”的,但却是最适合的,比如对系统的负载当达到50%的时候,就是一个优化和扩容的信号了;再比如,以自动化回归测试为核心,但并未使用TDD单元测试,等等等等。

在提问环节,有读者对如何在回归测试中组织测试用例很感兴趣,王迪解释到:

比如我们有700个测试用例,需要QA做一些数据,可以用SQL文件的方式存在本地,然后把请求和预期也同样以文件的方式存在本地,然后在框架运行的时候,把它们载入到数据库当中,然后再服务结束后,再从数据库中取出来。

演讲资料下载

本次百度技术沙龙的演讲资料现在已经可以下载

相关内容

百度技术沙龙(第1期)活动总结演讲资料下载

刘申 在08年毕业于哈工大,管理科学与工程硕士。对Web前端开发、Ruby、RoR以及极限编程十分感兴趣。

好啊,今天终于看到了一些有价值的东西。 发表人 Ma Karl 发表于
Re: 好啊,今天终于看到了一些有价值的东西。 发表人 zhao xingjun 发表于
Re: 好啊,今天终于看到了一些有价值的东西。 发表人 刘 申 发表于
Re: 好啊,今天终于看到了一些有价值的东西。 发表人 Zhang Katie 发表于
期待视频 发表人 zhang vg 发表于
如果是我在百度做Hadoop 发表人 吴 勇智 发表于
Re: 如果是我在百度做Hadoop 发表人 Liu Nathan 发表于
百度对Hadoop的贡献哪里可以下载 发表人 火 狐 发表于
视频在哪里呢 发表人 李 旸 发表于
期待视频 呵呵 发表人 ming liu 发表于
  1. 返回顶部

    好啊,今天终于看到了一些有价值的东西。

    发表人 Ma Karl

    rT

  2. 返回顶部

    Re: 好啊,今天终于看到了一些有价值的东西。

    发表人 zhao xingjun

    希望提供视频 ppt和pdf的内容需要结合视频才能发挥最大的价值 同时也是做笔记的依据啊

  3. 返回顶部

    Re: 好啊,今天终于看到了一些有价值的东西。

    发表人 刘 申

    恩,稍后演讲视频就会发布在InfoQ中文站上,敬请期待~

  4. 返回顶部

    期待视频

    发表人 zhang vg

    期待视频

  5. 返回顶部

    如果是我在百度做Hadoop

    发表人 吴 勇智

    我会选择加入到Hadoop开发者中做为开源提交.而不是封闭式的自我开发.

  6. 返回顶部

    Re: 如果是我在百度做Hadoop

    发表人 Liu Nathan

    在演讲中,听马先生所讲,感觉百度对Hadoop贡献挺大的。22号CSDN召开的云计算大会上,据移动的Hadoop开发人员说,中移动的开发团队是国内对Hadoop贡献最大的团体,不知道是不是真的

  7. 返回顶部

    百度对Hadoop的贡献哪里可以下载

    发表人 火 狐

    看到上面说的好像百度对Hadoop贡献很大,那么哪里可以找到源代码呢,贡献不是停留在嘴上的!

  8. 返回顶部

    Re: 好啊,今天终于看到了一些有价值的东西。

    发表人 Zhang Katie

    rT

  9. 返回顶部

    视频在哪里呢

    发表人 李 旸

    问一下,没看到……

  10. 返回顶部

    期待视频 呵呵

    发表人 ming liu

    期待视频 呵呵

深度内容

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。

解析JDK 7的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。

Java Remoting远程服务(下)

随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。