HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

百度技术沙龙第 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:517305

评论

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

几分钟搞定Java程序CPU飙升场景

HelloGeek

Java Docker 容器 解决方案

深势科技基于 Serverless 容器为科研人员打造高效的开发平台

阿里巴巴云原生

阿里云 Serverless Kubernetes 容器 云原生

加入华为云AIGC实战营,一起探索AI前沿技术!

科技热闻

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz 向量数据库

GitHub超60K的“亿级高并发系统设计手册”被疯传

小小怪下士

Java 程序员 系统设计 高并发

打破界限!百度「共拓计划」将AIGC营销推向新高度

科技热闻

Mac电脑剪切板复制粘贴推荐: PopClip for Mac激活中文版

胖墩儿不胖y

Mac软件 剪切板工具 文本编辑工具

Apache IoTDB v1.2.0/v1.2.1 发布|增加流处理框架、动态模板等新功能

Apache IoTDB

苹果Mac电脑专业修图软件 Affinity Photo 2 正式中文版

mac大玩家j

Mac软件 修图软件 修图工具 图像编辑器

数字矿山:智慧煤矿可视化2D组态系统

2D3D前端可视化开发

组态软件 智慧矿山 2D组态 智慧煤矿 智慧矿井

新老用户看过来~最实用的 Milvus 迁移手册来啦!

Zilliz

数据迁移 Milvus Zilliz 向量数据库

语音识别技术的挑战与机遇

来自四九城儿

亚马逊 CodeWhisperer 初体验

亚马逊云科技 (Amazon Web Services)

JavaScript typescript 人工智能

语音识别技术:未来人机交互的重要接口

来自四九城儿

降低代码圈复杂度优化技巧

南城FE

JavaScript 前端 代码 代码规范

低代码平台:解决开发中的重复“造轮子”

树上有只程序猿

低代码 造轮子

Arrays.asList():使用指南

越长大越悲伤

Java

ByConity 0.2.0 版本发布

字节跳动开源

数据库 大数据 开源 开源社区 数仓

【活动回顾】Rust:构建新时代基础设施的首选语言 @Qcon

Databend

蓝易云:CentOS-7详细基础教学!

百度搜索:蓝易云

云计算 Linux centos 运维 云服务器,

蓝易云:什么是HTTP500内部服务器错误,要如何修复?

百度搜索:蓝易云

云计算 Linux 运维 HTTP

低代码开发平台的优点和缺点

互联网工科生

低代码 可视化开发 JNPF

国内低代码开发平台有哪些?低代码真的好用吗?

高端章鱼哥

低代码 低代码开发平台 JNPF

从“作坊模式”到“平台科研”,和鲸聚焦 AI4S 项目全生命周期管理

ModelWhale

AI for Science 可复现性 科研协同 全生命周期 科研

“昇腾万里•齐聚津门”昇腾AI创新大赛2023 天津区域赛暨第十期“津英汇”活动成功举办

彭飞

金融和大模型的“两层皮”问题

脑极体

金融 大模型

征服数据宇宙,新华三存储护卫队早有准备?

脑极体

存储

语音识别技术:原理、应用与未来

来自四九城儿

zone.js由入门到放弃之五——NgZone & ApplicationRef源码分析

OpenTiny社区

前端 angular

15年磨砺,亚信科技AntDB 8.0数据库,倾“擎”发布

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

英特尔FPGA系列再扩容,打造完美产品矩阵

E科讯

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