• 1. 1淘宝分布式数据处理实践淘宝数据平台及产品部 周敏 zhouchen.zm@taobao.com 2010-09-04
  • 2. 主要内容淘宝的数据 云梯介绍 对Hadoop的主要功能扩展与改造 Hive实践 对Hive的改造 分布式数据仓库构思
  • 3. 淘宝的数据Oracle 备库MySQL 备库日志系统云梯1TimeTunnelJDBCDUMP数据平台搜索支付宝B2B云梯2天网调度系统Gateway Servers数据魔方量子统计口碑DataExchange爬虫数据Map Reduce Java JobsStreaming JobsHive Jobs广告BI淘数据推荐系统搜索排行…
  • 4. 淘宝数据的形状核心数据来源于Oracle备库 大部分数据结构化,数据具有模式 稠密
  • 5. 云梯1规模总容量9.3PB, 利用率77.09% 总共1100台机器 Master:8CPU(HT),48G内存,SAS Raid Slave节点异构 8CPU/8CPU(HT) 16G/24G内存 1T x 12 / 2T x 6 / 1T x 6 SATA JBOD 12/20 slots 约18000道作业/天, 扫描数据:约500TB/天 用户数474人, 用户组38个
  • 6. 云梯1规模-slaveSlave机器异构 6T机器磁盘利用率较高 Rebalance 单机速度控制:10M/s 每天9:00 ~ 23:30运行 Slave故障率 每周10 ~ 20次硬盘故障 每周1 ~ 2次主板或其他故障
  • 7. 云梯1 Hadoop版本基于0.19.1 大量Patch 主要来自官方社区0.19.2, 0.20, 0.21等 自己开发的 Hadoop客户端和服务端代码开发分离, 云梯管理员只负责服务端升级, 并保持版本向下兼容
  • 8. 云梯主要功能扩展安全性 密码认证 (hadoop.job.ugi) 扩展ACL,用户访问其他组的数据(开发中) Scheduler 基于FairScheduler的改造 slots动态调整(网页形式,每小时更新) 各个组使用自己的资源 Slave单磁盘容错 DataNode坏掉一块磁盘不需要停止,减少数据分发 TaskTracker坏掉一块磁盘后不对作业造成影响
  • 9. Master节点容灾方案3个Master + 1个Standby节点 配置文件一致,上传至SVN Virtual IP (NameNode和JobTracker) JobTracker无元数据,JobHistory每天备份七天前的历史文件 NameNode和SecondaryNameNode Check point 1天做一次(晚上8点之后),降低NameNode启动时间 Fsimage和edits同时通过NFS写到SNN上,元数据保存两份 Standby在NN或JT宕机时启用
  • 10. 将来的工作开发一种新型的调度器 调度效率低下导致集群利用率不足 基于红黑树的调度器 NameNode HA Namenode 内存瓶颈 Heap Size 40G,CMS gc之后 23G 分布式NameNode, Dynamic Partition Tree Hadoop 升级 OSD及CRUSH算法
  • 11. Hive使用2009年3月调研,4月投入生产 CLI与Thrift Server并用 Web/SSH 界面 模板化 & 预加载 86个统一发布UDF Lineage Analysis 极限存储 增量存储表 按数据的生命周期分目录
  • 12. 实践经验数据倾斜 内存优化 I/O优化 Multi-Insert 数据压缩
  • 13. 淘宝对Hive的贡献与改造UDFs 建立/删除临时函数 多线程 Thrift server GBK支持 完全JDBC Multi Distinct Aggregation支持 认证与权限 bug fix
  • 14. 将来的工作Hive IDE Multi Distinct Aggregation优化 Multi Group By优化 极限存储的索引与文件 表统计信息的支持 采用TFile做列存储尝试
  • 15. 分布式数据仓库构思Hadoop 集群JobTrackerTaskTrackerPostgres 实例MapTask ReduceTaskTaskTrackerPostgres 实例MapTask ReduceTaskTaskTrackerPostgres 实例MapTask ReduceTask提交MapReduce作业Anthill 服务器元数据库分析器优化器规划器执行器Anthill客户端网络
  • 16. 链接淘宝数据魔方 http://data.taobao.com 淘宝数据平台团队博客 http://www.tbdata.org/ 个人 http://coderplay.javaeye.com http://twitter.com/minzhou
  • 17. (本页无文本内容)