淘宝分布式数据处理实践 淘宝数据平台及产品部  周敏 [email_address] 2010-09-04
主要内容 <ul><li>淘宝的数据 </li></ul><ul><li>云梯介绍 </li></ul><ul><li>对 Hadoop 的主要功能扩展与改造 </li></ul><ul><li>Hive 实践 </li></ul><ul><l...
淘宝的数据 Oracle  备库 MySQL  备库 日志系统 云梯 1 TimeTunnel JDBCDUMP 数据平台 搜索 支付宝 B2B 云梯 2 Gateway Servers 数据魔方 量子统计 口碑 DataExchange 爬虫...
淘宝数据的形状 <ul><li>核心数据来源于 Oracle 备库 </li></ul><ul><li>大部分数据结构化,数据具有模式 </li></ul><ul><li>稠密 </li></ul>
云梯 1 规模 <ul><li>总容量 9.3PB,  利用率 77.09% </li></ul><ul><li>总共 1100 台机器 </li></ul><ul><li>Master : 8CPU(HT) , 48G 内存, SAS Rai...
云梯 1 规模 -slave <ul><li>Slave 机器异构 </li></ul><ul><ul><li>6T 机器磁盘利用率较高 </li></ul></ul><ul><ul><li>Rebalance  </li></ul></ul>...
云梯 1 Hadoop 版本 <ul><li>基于 0.19.1 </li></ul><ul><li>大量 Patch </li></ul><ul><ul><li>主要来自官方社区 0.19.2, 0.20, 0.21 等 </li></ul>...
云梯主要功能扩展 <ul><li>安全性 </li></ul><ul><ul><li>密码认证 ( hadoop.job.ugi ) </li></ul></ul><ul><ul><li>扩展 ACL ,用户访问其他组的数据(开发中) </li...
Master 节点容灾方案 <ul><li>3 个 Master + 1 个 Standby 节点 </li></ul><ul><ul><li>配置文件一致,上传至 SVN </li></ul></ul><ul><li>Virtual IP  ...
将来的工作 <ul><li>开发一种新型的调度器 </li></ul><ul><ul><li>调度效率低下导致集群利用率不足 </li></ul></ul><ul><ul><li>基于红黑树的调度器 </li></ul></ul><ul><li...
Hive 使用 <ul><li>2009 年 3 月调研 ,4 月投入生产 </li></ul><ul><li>CLI 与 Thrift Server 并用 </li></ul><ul><li>Web/SSH  界面 </li></ul><ul...
实践经验 <ul><li>数据倾斜 </li></ul><ul><li>内存优化 </li></ul><ul><li>I/O 优化 </li></ul><ul><li>Multi-Insert </li></ul><ul><li>数据压缩 </...
淘宝对 Hive 的贡献与改造 <ul><li>UDFs </li></ul><ul><li>建立 / 删除临时函数 </li></ul><ul><li>多线程  Thrift server </li></ul><ul><li>GBK 支持 <...
将来的工作 <ul><li>Hive IDE </li></ul><ul><li>Multi Distinct Aggregation 优化 </li></ul><ul><li>Multi Group By 优化 </li></ul><ul><...
分布式数据仓库构思 Hadoop  集群 JobTracker TaskTracker Postgres 实例 MapTask ReduceTask TaskTracker Postgres 实例 MapTask ReduceTask Task...
链接 <ul><li>淘宝数据魔方 </li></ul><ul><ul><li>http://data.taobao.com </li></ul></ul><ul><li>淘宝数据平台团队博客 </li></ul><ul><ul><li>htt...
 
Upcoming SlideShare
Loading in …5
×

淘宝分布式数据处理实践

2,080 views

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,080
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
95
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide
  • 45399569 files and directories, 60602161 blocks = 106001730 total. Heap Memory used 29.41 GB is 74% of Commited Heap Memory 39.6 GB. Max Heap Memory is 39.6 GB. Non Heap Memory used 26.01 MB is 67% of Commited Non Heap Memory 38.6 MB. Max Non Heap Memory is 132 MB. Configured Capacity : 9.1 PB DFS Used : 7.01 PB Non DFS Used : 155.2 TB DFS Remaining : 1.93 PB DFS Used% : 77.09 % DFS Remaining% : 21.24 % Live Nodes : 1043 Dead Nodes : 50
  • 45399569 files and directories, 60602161 blocks = 106001730 total. Heap Memory used 29.41 GB is 74% of Commited Heap Memory 39.6 GB. Max Heap Memory is 39.6 GB. Non Heap Memory used 26.01 MB is 67% of Commited Non Heap Memory 38.6 MB. Max Non Heap Memory is 132 MB. Configured Capacity : 9.1 PB DFS Used : 7.01 PB Non DFS Used : 155.2 TB DFS Remaining : 1.93 PB DFS Used% : 77.09 % DFS Remaining% : 21.24 % Live Nodes : 1043 Dead Nodes : 50
  • 7.01PB
  • 淘宝分布式数据处理实践

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

    ×