写点什么

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

  • 2010-05-19
  • 本文字数:1634 字

    阅读完需:约 5 分钟

在百度技术沙龙第 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 期)活动总结演讲资料下载

2010-05-19 03:517789

评论

发布
暂无评论
发现更多内容

人工智能(NLP)|社交网络中的网络表示学习技术研究

索信达控股

人工智能 算法 网络结构

谈谈Golang的同步等待组

恒生LIGHT云社区

golang Go 语言

腾讯云容器安全获得云安全守卫者计划优秀案例

腾讯安全云鼎实验室

容器安全

助车企升级,旺链科技与南方电网、联想等名企同斩获「创新案例奖」

旺链科技

区块链 产业区块链 供应链金融

How old are you | 尚硅谷大数据之Canal视频教程

编程江湖

大数据 canal

千万级日志回放引擎设计稿

FunTester

性能测试 测试框架 FunTester 流量回放 GOREPLAY

恒源云(GPUSHARE)_云GPU服务器如何使用SpaCy?

恒源云

gpu 服务器 自然语言

使用Docker Configs存储配置信息

yombo

Docker Docker Swarm

用300行代码手写1个Spring框架,麻雀虽小五脏俱全

Tom弹架构

Java spring 源码

基于Gradle的Spring源码下载及构建技巧

Tom弹架构

Java spring 源码

基于DataX的数据同步(下)-应用DataX进行数据同步

恒生LIGHT云社区

数据库 数据同步 DataX

爆肝30天,肝出来史上最透彻Spring原理和27道高频面试题总结

Tom弹架构

Java spring 源码

30个类手写Spring核心原理之自定义ORM(下)(7)

Tom弹架构

Java spring 源码

架构训练营 - 模块三作业

伊静西蒙

Spring框架基础知识(03)

海拥(haiyong.site)

28天写作 12月日更

揭秘字节跳动基于Hudi的实时数据湖平台

字节跳动数据平台

大数据 实时数据湖

一文带你了解数据库安全基础

坚果

数据库 28天写作 12月日更

Apsara Stack 技术百科|标准化的云时代:一云多芯

云计算 芯片 科技 混合云

Dubbo 框架学习笔记十七

风翱

dubbo 12月日更

社区原生的 Go Agent 即将开源

火线安全

DevSecOps IAST

整理了一些JPA常用注解

yombo

Java Spring JPA

三位一体,网易智企的融合与进击

ToB行业头条

2022 年你必须知道的 Serverless 云产品

开源之巅

Serverless 云开发

使用亚马逊云科技DevOps 工具构建 InnerSource 生态系统

亚马逊云科技 (Amazon Web Services)

开源 InnerSource

域名基本信息查询小技巧

喀拉峻

网络安全 安全 信息安全

seata分布式事务AT模式介绍(二)

恒生LIGHT云社区

分布式 分布式事务 seata

模块八作业

panxiaochun

架构实战营

实现一键部署与高效集群管理,SphereEx-Boot 正式上线

SphereEx

开源 开源社区 SphereEx ShadingSphere 一键安装

一次完整的渗透测试&仅供学习研究

H

黑客 网络安全 渗透测试·

网易有道项目实践技术分享合集

有道技术团队

技术分享 网易有道 技术专题合集

百度技术沙龙第2期回顾:分布式与服务扩展(含演示文档下载)_架构_刘申_InfoQ精选文章