SlideShare a Scribd company logo
百度系统部分布式系统介绍

         马如悦
   maruyue@baidu.com
       2010.08.27
主要内容

• 百度的数字
• 计算平台
 – HPC
 – DC
• 存储平台
 – DFS
 – DOS
• 数据平台(?)
百度的数字

• HPC - 高性能计算
  – 200左右,8 core, 16GB~64GB
• DC - MapReduce计算
  –   > 10个集群,共4000台
  –   8core,16GB,12*1TB
  –   最大集群1000台
  –   每日计算量>2.5PB
  –   每日作业数>3w
• DS - 分布式存储
  – 使用容量平均70%
计算平台



           算法描述层                                 表示层SQL-like


Classification Regression
                             应用           Map-Reduce                   应用
                                                            DAG
  矢量计算        Clustering     模型                                        模型


执行层(HPC scheduler & agent)                 执行层(DC scheduler & agent)

  通讯密集型-大规模HPC机群                       数据&计算密集型-大规模分布式计算机群



                            计算资源管理层—调度不同类型计算的agent
HPC

• 单机HPC
  – Multicore
  – GPU
  – FPGA
• 多机HPC
  – MPI
• 机器学习算法服务
  – 单机HPC+多机HPC+MapReduce
• 应用
  – 商务搜索、Baidu News ......
DC

• Abaci = Hadoop-MapRed+自主系统
• 表示层
     – DISQL (to appear in Hadoop in China 2010)
• 调度层
     –   Master+Agent
     –   workflow元调度(in Master)
     –   数据分发服务(in Agent): shuffle,bt文件分发
     –   分布式Master
• 计算层
     –   Streaming - 文本处理
     –   Bistreaming - 二进制处理
     –   HCE - C++编程接口
     –   ......
DC-HCE-介绍

• Hadoop C++ Extension
• Jira: MapReduce-1270
   – https://issues.apache.org/jira/browse/MAPREDUCE-
     1270
   – Design Doc
   – Patch
   – Demo package
   – Install Manual
   – Tutorial
   – Performance Test Doc
DC-HCE-背景

• Why not Pipes, Bistreaming
• Java语言效率: 提升10%~40%
   – sort, compress/decompress
• Java内存控制
• Full featured C++ API
DC-HCE-Design
DC-HCE-基本接口



              setup(), cleanup(),
              map(), reduce()函数
              必须实现,函数的
              返回值是执行结
              果,0表示正常,
              非0表示失败。
              提供给用户调用的
              函数,emit()函数
              用来输出数据,
              getContext()函数得
              到TaskContext
DC-HCE-接口调用顺序




                  map
       setup       or      cleanup
                 reduce



      * 初始化     * 数据处理    * 清理工作
      * 资源申请    * 每一条记    * 资源回收
      * 词典加载    录调用一次     *…
      *…
DC-HCE-Demo
DC-HCE-Demo
DC-HCE-Other



  接口             功能
  Combiner       在Map完成后进行局部规约
                 默认没有Combiner操作
  Partitioner    中间数据分桶函数,根据Key确定由哪一个Reduce来处理
                 默认是HashPartitioner,按照Key的Hash值进行分桶
  RecordReader   数据输入接口。默认是LineRecordReader,用于读取文本
                 数据。HCE另外提供SequenceRecordReader可以读取
                 SequenceFile格式的二进制数据
  RecordWriter   数据输出接口。默认是LineRecordWriter,用于输出文本数
                 据。HCE另外提供SequenceRecordWriter可以输出
                 SequenceFile格式的二进制数据
  JobConf        读取Hadoop环境配置和用户自定义配置
  Counter        进行作业级别的数据统计
DS

• Distributed Store
• HDFS2 - DFS
     –   Scalability - DistributedNameNode(DNN)
     –   Availability
     –   Low latency
     –   High concurrent
• ?- DOS
     – 无树状命名空间,二层命名空间
     – Object: 几KB->几GB
     – REST API
HDFS2-DNN-背景
• 31,855,959个文件,34,233,901个块
  – 内存占用约12GB
    • 块管理 ≈ 7.8G,包括全部块副本信息
    • 目录树 ≈ 4.3G,目录层次结构,包含文件块列表信息

• 到10亿文件、10亿块的数据规模
  – 内存占用约380GB
    • 块管理 ≈ 240GB
    • 目录树 ≈ 140GB

• 负载
  – 集群规模扩大后,单点的NameNode请求压力也会同时增大
HDFS2-DNN-调研
HDFS2-DNN-社区方案
HDFS2-DNN-Ours



            静态    哈希     动态    其它     平坦命名空间    其它
            分割           子树             (S3)    命名
                         分割                     空间


                 树状命名空间集群


            文件管理1             文件管理2        文件管理n
              块管理               块管理         块管理

对象管理层

            DataNode 1        DataNode 2   DataNode m
单节点的树状命名空间




        文件管理1          文件管理2        文件管理n
          块管理            块管理         块管理
对象管理层


        DataNode 1     DataNode 2   DataNode m
HDFS2-DNN-优点

• 文件对象管理服务直接就是水平可扩展的
• 文件对象管理做为单独服务存在,可挂载不同类
 型命名空间,如S3
• 大幅度减轻了Namespace的职责,方便后续对
 Namespace进行分布式化
• 间接减少了Namespace的压力
  – 很多数据不用再存储在Namespace上
  – 很多请求不用再通过Namespace
HDFS2-DNN-预期

• 内存
  – 10亿文件,10亿块
    • 文件 ≈ 66GB,目录 ≈ 1GB
    • 单节点命名空间就可以管理

• 请求负载
  – 大部分的耗时操作都属于文件对象管理层,不用经过
    Namespace
  – 最耗CPU资源的若干操作中,仍需经过Namespace的只
    占13.7%
  – 命名空间管理不再维护块信息,大部分操作都不需要
    加全局锁,可以更充分利用CPU资源
百度系统部分布式系统介绍 马如悦 Sacc2010

More Related Content

What's hot

Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照
Shaoning Pan
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验
Hanborq Inc.
 
Memcached vs redis
Memcached vs redisMemcached vs redis
Memcached vs redis
qianshi
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
iammutex
 
Redis 常见使用模式分析
Redis 常见使用模式分析Redis 常见使用模式分析
Redis 常见使用模式分析
vincent253
 
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosqlknuthocean
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
國昭 張
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
zhaolinjnu
 
MapReduce 簡單介紹與練習
MapReduce 簡單介紹與練習MapReduce 簡單介紹與練習
MapReduce 簡單介紹與練習
孜羲 顏
 
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路
li luo
 
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
Hang Geng
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
Alex Lau
 
Hadoop安裝 (1)
Hadoop安裝 (1)Hadoop安裝 (1)
Hadoop安裝 (1)銘鴻 陳
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese
Vickie Zeng
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践Wensong Zhang
 
Redis介绍
Redis介绍 Redis介绍
Redis介绍
yubao fu
 
Mongo db 特性
Mongo db 特性Mongo db 特性
Mongo db 特性
Hermes Chiang
 
淘宝分布式数据处理实践
淘宝分布式数据处理实践淘宝分布式数据处理实践
淘宝分布式数据处理实践isnull
 
Zh Tw Introduction To Hadoop And Hdfs
Zh Tw Introduction To Hadoop And HdfsZh Tw Introduction To Hadoop And Hdfs
Zh Tw Introduction To Hadoop And Hdfs
kevin liao
 
Hbase架构简介、实践
Hbase架构简介、实践Hbase架构简介、实践
Hbase架构简介、实践
Li Map
 

What's hot (20)

Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验
 
Memcached vs redis
Memcached vs redisMemcached vs redis
Memcached vs redis
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 
Redis 常见使用模式分析
Redis 常见使用模式分析Redis 常见使用模式分析
Redis 常见使用模式分析
 
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
 
MapReduce 簡單介紹與練習
MapReduce 簡單介紹與練習MapReduce 簡單介紹與練習
MapReduce 簡單介紹與練習
 
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路
 
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
Ceph中国社区9.19 Ceph FS-基于RADOS的高性能分布式文件系统02-袁冬
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
 
Hadoop安裝 (1)
Hadoop安裝 (1)Hadoop安裝 (1)
Hadoop安裝 (1)
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
Redis介绍
Redis介绍 Redis介绍
Redis介绍
 
Mongo db 特性
Mongo db 特性Mongo db 特性
Mongo db 特性
 
淘宝分布式数据处理实践
淘宝分布式数据处理实践淘宝分布式数据处理实践
淘宝分布式数据处理实践
 
Zh Tw Introduction To Hadoop And Hdfs
Zh Tw Introduction To Hadoop And HdfsZh Tw Introduction To Hadoop And Hdfs
Zh Tw Introduction To Hadoop And Hdfs
 
Hbase架构简介、实践
Hbase架构简介、实践Hbase架构简介、实践
Hbase架构简介、实践
 

Viewers also liked

百度分布式数据库平台
百度分布式数据库平台百度分布式数据库平台
百度分布式数据库平台Wyatt Fang
 
百度分布式数据库 刘斌 Sacc2010
百度分布式数据库 刘斌 Sacc2010百度分布式数据库 刘斌 Sacc2010
百度分布式数据库 刘斌 Sacc2010
Chuanying Du
 
几种Nosql介绍
几种Nosql介绍几种Nosql介绍
几种Nosql介绍
taotao1240
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理Kay Yan
 
Hbase介绍
Hbase介绍Hbase介绍
Hbase介绍Kay Yan
 
人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析isnull
 
雪球大数据体系实践
雪球大数据体系实践雪球大数据体系实践
雪球大数据体系实践
fulin tang
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
孙立
 
MongoDB 在盛大大数据量下的应用
MongoDB 在盛大大数据量下的应用MongoDB 在盛大大数据量下的应用
MongoDB 在盛大大数据量下的应用
iammutex
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理Kay Yan
 
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)
Tim Y
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
XiaoJun Hong
 
深入了解Redis
深入了解Redis深入了解Redis
深入了解Redis
iammutex
 
大鱼架构演进
大鱼架构演进大鱼架构演进
大鱼架构演进
Jun Liu
 

Viewers also liked (14)

百度分布式数据库平台
百度分布式数据库平台百度分布式数据库平台
百度分布式数据库平台
 
百度分布式数据库 刘斌 Sacc2010
百度分布式数据库 刘斌 Sacc2010百度分布式数据库 刘斌 Sacc2010
百度分布式数据库 刘斌 Sacc2010
 
几种Nosql介绍
几种Nosql介绍几种Nosql介绍
几种Nosql介绍
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理
 
Hbase介绍
Hbase介绍Hbase介绍
Hbase介绍
 
人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析
 
雪球大数据体系实践
雪球大数据体系实践雪球大数据体系实践
雪球大数据体系实践
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
 
MongoDB 在盛大大数据量下的应用
MongoDB 在盛大大数据量下的应用MongoDB 在盛大大数据量下的应用
MongoDB 在盛大大数据量下的应用
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理
 
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
 
深入了解Redis
深入了解Redis深入了解Redis
深入了解Redis
 
大鱼架构演进
大鱼架构演进大鱼架构演进
大鱼架构演进
 

Similar to 百度系统部分布式系统介绍 马如悦 Sacc2010

Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
84zhu
 
分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess
babel_qi
 
Hadoop系统及其关键技术
Hadoop系统及其关键技术Hadoop系统及其关键技术
Hadoop系统及其关键技术冬 陈
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理airsex
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
acelyc1112009
 
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術
Wei-Yu Chen
 
Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里
li luo
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面Tianwei Liu
 
Mesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ DoubanMesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ Douban
Zhong Bo Tian
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构drewz lin
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
 
开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践
Wensong Zhang
 
Hadoop con 2015 hadoop enables enterprise data lake
Hadoop con 2015   hadoop enables enterprise data lakeHadoop con 2015   hadoop enables enterprise data lake
Hadoop con 2015 hadoop enables enterprise data lake
James Chen
 
Log collection
Log collectionLog collection
Log collection
FEG
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
ITband
 
分布式存储与TDDL
分布式存储与TDDL分布式存储与TDDL
分布式存储与TDDL
mysqlops
 
Large-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The HoodLarge-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The Hood
Lei (Harry) Zhang
 
Hadoop学习总结
Hadoop学习总结Hadoop学习总结
Hadoop学习总结ordinary2012
 

Similar to 百度系统部分布式系统介绍 马如悦 Sacc2010 (20)

Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess
 
Hadoop系统及其关键技术
Hadoop系统及其关键技术Hadoop系统及其关键技术
Hadoop系统及其关键技术
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
 
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術
 
Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面
 
Mesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ DoubanMesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ Douban
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
Hadoop 介紹 20141024
Hadoop 介紹 20141024Hadoop 介紹 20141024
Hadoop 介紹 20141024
 
开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践
 
Ibm solid db_基础
Ibm solid db_基础Ibm solid db_基础
Ibm solid db_基础
 
Hadoop con 2015 hadoop enables enterprise data lake
Hadoop con 2015   hadoop enables enterprise data lakeHadoop con 2015   hadoop enables enterprise data lake
Hadoop con 2015 hadoop enables enterprise data lake
 
Log collection
Log collectionLog collection
Log collection
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
 
分布式存储与TDDL
分布式存储与TDDL分布式存储与TDDL
分布式存储与TDDL
 
Large-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The HoodLarge-Scale Cluster Mangement & Kubernetes Under The Hood
Large-Scale Cluster Mangement & Kubernetes Under The Hood
 
Hadoop学习总结
Hadoop学习总结Hadoop学习总结
Hadoop学习总结
 

百度系统部分布式系统介绍 马如悦 Sacc2010

  • 1. 百度系统部分布式系统介绍 马如悦 maruyue@baidu.com 2010.08.27
  • 2. 主要内容 • 百度的数字 • 计算平台 – HPC – DC • 存储平台 – DFS – DOS • 数据平台(?)
  • 3. 百度的数字 • HPC - 高性能计算 – 200左右,8 core, 16GB~64GB • DC - MapReduce计算 – > 10个集群,共4000台 – 8core,16GB,12*1TB – 最大集群1000台 – 每日计算量>2.5PB – 每日作业数>3w • DS - 分布式存储 – 使用容量平均70%
  • 4. 计算平台 算法描述层 表示层SQL-like Classification Regression 应用 Map-Reduce 应用 DAG 矢量计算 Clustering 模型 模型 执行层(HPC scheduler & agent) 执行层(DC scheduler & agent) 通讯密集型-大规模HPC机群 数据&计算密集型-大规模分布式计算机群 计算资源管理层—调度不同类型计算的agent
  • 5. HPC • 单机HPC – Multicore – GPU – FPGA • 多机HPC – MPI • 机器学习算法服务 – 单机HPC+多机HPC+MapReduce • 应用 – 商务搜索、Baidu News ......
  • 6. DC • Abaci = Hadoop-MapRed+自主系统 • 表示层 – DISQL (to appear in Hadoop in China 2010) • 调度层 – Master+Agent – workflow元调度(in Master) – 数据分发服务(in Agent): shuffle,bt文件分发 – 分布式Master • 计算层 – Streaming - 文本处理 – Bistreaming - 二进制处理 – HCE - C++编程接口 – ......
  • 7. DC-HCE-介绍 • Hadoop C++ Extension • Jira: MapReduce-1270 – https://issues.apache.org/jira/browse/MAPREDUCE- 1270 – Design Doc – Patch – Demo package – Install Manual – Tutorial – Performance Test Doc
  • 8. DC-HCE-背景 • Why not Pipes, Bistreaming • Java语言效率: 提升10%~40% – sort, compress/decompress • Java内存控制 • Full featured C++ API
  • 10.
  • 11. DC-HCE-基本接口 setup(), cleanup(), map(), reduce()函数 必须实现,函数的 返回值是执行结 果,0表示正常, 非0表示失败。 提供给用户调用的 函数,emit()函数 用来输出数据, getContext()函数得 到TaskContext
  • 12. DC-HCE-接口调用顺序 map setup or cleanup reduce * 初始化 * 数据处理 * 清理工作 * 资源申请 * 每一条记 * 资源回收 * 词典加载 录调用一次 *… *…
  • 15. DC-HCE-Other 接口 功能 Combiner 在Map完成后进行局部规约 默认没有Combiner操作 Partitioner 中间数据分桶函数,根据Key确定由哪一个Reduce来处理 默认是HashPartitioner,按照Key的Hash值进行分桶 RecordReader 数据输入接口。默认是LineRecordReader,用于读取文本 数据。HCE另外提供SequenceRecordReader可以读取 SequenceFile格式的二进制数据 RecordWriter 数据输出接口。默认是LineRecordWriter,用于输出文本数 据。HCE另外提供SequenceRecordWriter可以输出 SequenceFile格式的二进制数据 JobConf 读取Hadoop环境配置和用户自定义配置 Counter 进行作业级别的数据统计
  • 16. DS • Distributed Store • HDFS2 - DFS – Scalability - DistributedNameNode(DNN) – Availability – Low latency – High concurrent • ?- DOS – 无树状命名空间,二层命名空间 – Object: 几KB->几GB – REST API
  • 17. HDFS2-DNN-背景 • 31,855,959个文件,34,233,901个块 – 内存占用约12GB • 块管理 ≈ 7.8G,包括全部块副本信息 • 目录树 ≈ 4.3G,目录层次结构,包含文件块列表信息 • 到10亿文件、10亿块的数据规模 – 内存占用约380GB • 块管理 ≈ 240GB • 目录树 ≈ 140GB • 负载 – 集群规模扩大后,单点的NameNode请求压力也会同时增大
  • 20. HDFS2-DNN-Ours 静态 哈希 动态 其它 平坦命名空间 其它 分割 子树 (S3) 命名 分割 空间 树状命名空间集群 文件管理1 文件管理2 文件管理n 块管理 块管理 块管理 对象管理层 DataNode 1 DataNode 2 DataNode m
  • 21. 单节点的树状命名空间 文件管理1 文件管理2 文件管理n 块管理 块管理 块管理 对象管理层 DataNode 1 DataNode 2 DataNode m
  • 22. HDFS2-DNN-优点 • 文件对象管理服务直接就是水平可扩展的 • 文件对象管理做为单独服务存在,可挂载不同类 型命名空间,如S3 • 大幅度减轻了Namespace的职责,方便后续对 Namespace进行分布式化 • 间接减少了Namespace的压力 – 很多数据不用再存储在Namespace上 – 很多请求不用再通过Namespace
  • 23. HDFS2-DNN-预期 • 内存 – 10亿文件,10亿块 • 文件 ≈ 66GB,目录 ≈ 1GB • 单节点命名空间就可以管理 • 请求负载 – 大部分的耗时操作都属于文件对象管理层,不用经过 Namespace – 最耗CPU资源的若干操作中,仍需经过Namespace的只 占13.7% – 命名空间管理不再维护块信息,大部分操作都不需要 加全局锁,可以更充分利用CPU资源