• 1. 百度系统部HDFS实现原理与应用介绍lixiangna@baidu.com
  • 2. 主要内容应用背景 Hadoop简介 HDFS设计目标 HDFS系统结构 HDFS实现原理 典型实例
  • 3. 应用背景需求 每天上TB的日志需要存储备份 需从浩瀚的日志中挖掘和分析数据 问题 数据量太大,机器不多搞不定。 配置好的服务器很贵,只能选择使用每TB成本低的机器。 机器多了, “毛病”花样百出。 如果简便地进行系统扩展…… 有无合适的 分布式系统
  • 4. 他山之石Google GFS(Google File System) MapReduce BigTable Hadoop HDFS MapReduce HBase
  • 5. 什么是HadoopOpen Source, Java Apache Lucene(开源搜索引擎)的一个子项目 一套完善的分布式基础设施 Core:HDFS、MapReduce HBase Pig、Hive ZooKeeper Chukwa 官方网址:http://hadoop.apache.org
  • 6. Our Hadoop集群配置 3个大集群(ai、yx、jp…) 总规模在700台左右 规模仍然在高速增长 每天的计算情况 作业数3000以上 处理数据量在120TB以上 计算量仍然在成倍增长 (世界最大的Hadoop集群在yahoo, 包含节点4000台;Yahoo整体用于搭建Hadoop集群的节点达一万台。)
  • 7. Hadoop已存储的日志PS:clickreport、bws、ui、us、宝藏日志(searcher)、大库、自动库… NS:sobar、iknow、mp3、image、video、baike、yule、space、news… Ecom:im、pp… sys:syslogs、全流量镜像日志(mirror) … Ite:relay… 仅ai集群存储日志接近1P。 ai集群展示:http://ai-logpf-master3-v.ai01.baidu.com:50070
  • 8. ai集群
  • 9. HDFS设计目标Hadoop Distributed filesystem是一种分布式应用底层框架,并非单纯用于存储。其设计前提与主要目标是: 用于海量存储,必须具有良好的可扩展性。 硬件故障很平常,必须保证: 自动容错; 故障探测与处理; 数据安全性; 系统可用性。 “一次写入多次读取” 模型,以文件访问的高吞吐量为目标。 与MapReduce框架紧密结合,“移动计算比移动数据更高效” 。
  • 10. 系统结构主从架构:1台Namenode,多台DatanodesNamenodeDatanodeReplicationMetadata (Name, replicas, …) (/foo/data, 3, …)fDatanodeDatanodeDatanodeDatanodeRack 1Rack 2ClientWhere is f?R1D1, R1D2, R2D1ff
  • 11. Namenode“总司令”,系统状态监控与调度 负载均衡 副本迁移 元数据管理 block与datanode映射 文件系统映像文件 操作日志文件 checkpoint
  • 12. Datanode“服务员”,数据存储 向client提供数据读写服务 执行数据块创建、拷贝或删除命令 定期向Namenode汇报 Heartbeat: I’m live! (3+ seconds) Blockreceived:new created blocks Blockreport: all blocks on datanode(1 hour)
  • 13. 写策略从Namenode获取副本存放位置 流水线推送 Checksum校验 自动错误处理 自动跳过出错节点 数据块丢弃与自动重试 Lease机制 顺序写达70M/s
  • 14. 读策略从Namenode获取副本位置信息 直接与Datanode通信,读取最近副本 Checksum校验(可选) 错误自动重试(默认重试3次) 顺序读达100M/s
  • 15. 自动容错数据块有多份冗余(默认3份,可任意调大调小) 读数据时,发现读超时或数据校验有误,会尝试从其他备份读取。 写数据时,当某个节点出现写异常时,会自动跳过出错节点。
  • 16. 数据安全性数据块有效副本数少于预期设置值,系统自动拷贝;多于预期设置值,系统自动删除多余副本。 数据块有效性被定期(默认两周)检查。 Trash功能(防止误删除)。 访问控制功能。
  • 17. 访问控制用户权限认证 类linux用户组管理 连接访问控制 iptables 目录配额
  • 18. 故障探测与处理故障探测 各种超时机制 client或datanode主动报告 故障处理 磁盘出错?(自动跳过) Datanode异常?(冗余机制) Namenode异常?(双机备份) 网络异常?(重试机制) ……
  • 19. 系统可用性失效节点数目<副本数目时,集群服务不受影响; 失效节点数目>=副本数目时,只会影响到相关文件的读取和追加操作; 安全模式(系统只读) 系统升级导致服务中断 < 5min Namenode服务切换导致服务中断 < 5min
  • 20. 系统扩展性HDFS(Hadoop)扩展性强、透明、操作简便。 相关机制 Datanode自动注册(无需停止服务) Decommisson机制(节点安全下架) Rebalance机制(数据自动均衡)
  • 21. 易用性流式访问 API丰富 HDFS shell java api libhdfs(c api) Hadoop-vfs Http 易于管理 (运维简便)
  • 22. 典型实例Ps宝藏计划 Ns lsp日志存储与统计平台 Dmop统一日志管理平台
  • 23. 宝藏计划目标:日志通过网络打印,存储到分布式系统中,并进一步分析,对线上各种策略进行指导。
  • 24. lsp平台任务调度/执行器Code Engine API数据库单机hadoop UICompute Wrapper API监控器目标:可以通过界面进行脚本的可视化编程和测试,自动进行任务的分配和执行,并可以人工进行调整。 简化日志统计脚本的开发和维护,并且能更方便地进行监控和管理。每周任务数:>300,处理数据量>10T
  • 25. dmop平台目标:逐步实现对公司日志存储备份的统一管理。
  • 26. 更多资料获取 邮件组:sos@baidu.com Wiki: http://wiki.sys.baidu.com:8080/bin/view/Main/SOS%E5%AF%B9%E5%A4%96
  • 27. 问题解答