Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Hadoop大数据实践经验

            2012年12月
Schubert Zhang, Stephen Xie, Clay Jiang
汉播与开源(Hadoop Ecosystem)
 开源项目代码、补丁、问题报告:                           为开源社区提供文档、测试报告和贡献资料:
 HBASE-1778、HBASE-1818、HBASE-1841、HBASE-
                                           http://www.slideshare.net/hanborq
 1978 、HBASE-1902、HBASE-3943、HBASE-1296、
                                           http://www.slideshare.net/schubertzhang
 MAPREDUCE-3685 、MAPREDUCE-4039、
                                           http://hbase.apache.org/book.html#regions.arch
 CASSANDRA-1729 ……


http://github.com/hanborq           汉播与开源                       http://slideshare.net/hanborq




                                                          http://slideshare.net/schubertzhang
2013/3/21                                                                                       2
Hadoop实践概述 (1)




2013/3/21                    3
Hadoop实践概述 (2)




2013/3/21                    4
集群规划 - Hadoop版本选择
•   开源发布
      –     Apache/Hortonworks
      –     Cloudera
      –     Facebook
      –     MapR
      –     Hanborq or BigCloud …
•   Hadoop, HBase, etc.




2013/3/21                              5
集群规划 – 硬件选择
•   什么是Commodity Hardware?
•   CPU:Memory:Disk,依赖于workload特性需求
•   JBOD vs. RAID vs. SPAN/BIG
•   虚拟机、Blades、SAN不适用

• Master节点                                                        • Worker(Slave)节点
     – NameNode and SecondaryNameNode
     – JobTracker                                                   – 存储+计算
     – 可靠性要求更高                                                      – 存储密集(DW)
            •   双电源
            •   捆绑网口                                                – 保留20~30%磁盘空间做MapReduce、
            •   RAID1 vs. RAID10 vs. RAID5                            HDFS、HBase临时数据
            •   专用独立的硬盘
            •   备份到NFS                                              – 每个task大概1~4GB内存,48GB内
     – 大内存                                                            存支持约10~20 tasks
            •   NameNode: 1GB 大约100万Blocks, 小文件问题
            •   JobTracker: History Task Status, Counters, etc.
                (mapred.jobtracker.completeuserjobs.maximum)
     – 小硬盘
            •   < 1TB即可,如500GB

2013/3/21                                                                                   6
集群规划 – 硬件选择 – 举例




2013/3/21                      7
集群规划 – 集群大小
• 存储和计算能力需求
      – CPU、Memory、存储、Disk IO
      – 计算作业的频率

• 按存储需求来估算 (常用)
      – 长期存储的历史数据
      – 每日增量的数据
      – 实际参与计算的数据

• 按计算能力来估算 (较难)

2013/3/21                       8
集群规划 – OS及内核调优
• 操作系统
      – RHEL/CentOS/Ubuntu …
      – JDK (http://wiki.apache.org/hadoop/HadoopJavaVersions)
             • 1.6.0_24/26/31
             • -XX:+UseCompressedOops
             • GC options
      – cron/ntp/ssh/sendmail/rsync/sysstat/dstat
      – Hostname和DNS
      – 用户,组,权限

• 内核调优
      –     ulimit: open files, max user processes, etc.
      –     vm.swappiness
      –     vm.overcommit_memory
      –     …

2013/3/21                                                        9
集群规划 – 磁盘规划
• Linux文件系统
      –     Ext3
      –     Ext4 (extent-based, sequential)
      –     Xfs (extent-based, concurrent)
      –     LVM (anti.)




2013/3/21                                     10
集群规划 – 网络规划
• 考虑HDFS/MapReduce 1Gb vs. 10Gb




            (1) 两层树结构 (中小集群)                    (2) 三层树结构 (大集群瓶颈)
                                      •   East/West vs. North/South流量模型
                                            • 写穿
                                            • Shuffle
                                      •   机架拓扑,交换机拓扑
                                      •   读:尽量本地;写:本地优先
                                      •   10Gb: low latency, high throughput
                                      •   接入交换机:10Gb的价格是1Gb的三倍
                                      •   ETL:10Gb
                                      •   Bonding ->10Gb
                                      •   CLOS Network: http://research.google.com/pubs/pub36740.html
                                          http://www.csdn.net/article/2011-05-20/298348
            (3) Spine Fabric (扩展性好)   •   Redundancy
2013/3/21                                                                                               11
集群自动化部署 - ClusterMaster
• ClusterMaster是一款自动化部署和运维系统。旨在解决大规模
  集群部署和运维过程中的几个核心问题:操作系统部署、应用部
  署及管理、配置管理、性能数据采集、报警监控。

• ClusterMaster集成Kickstart、Cobbler、Puppet、Ganglia、
  Nagios等开源软件为一体,向用户提供统一的Web管理界面。

• 依托强大的开源软件,ClusterMaster具有良好的可扩展性,可
  以应对Linux集群运维中的各种应用部署和操作系统部署需求。
  用户只需提供部署脚本和安装包,剩下的工作都将由
  ClusterMaster自动完成。

2013/3/21                                            12
ClusterMaster




2013/3/21                   13
集群自动化部署 – Hdeploy/HTCfg




HugeTable提供并行系统部署和配置工具HTCfg,可以方便地对系
统依赖软件、Linux环境配置、HugeTable的各个软件模块进行安
装部署和配置。使得用户不必一台一台地对分布式系统逐个安装
和配置。
                                      Hdeploy的deploy.dd文件片段


 2013/3/21                                                    14
运维 -
            HDFS WebUI和运维策略




2013/3/21                     15
运维 –
            MapReduce WebUI和运维策略




2013/3/21                          16
运维 – 善用Metrics




    有选择地集成Ganglia或OpenTSDB实现关键Metrics实时可视化。
2013/3/21                                     17
运维 – 监控报警可视化工具

                             ClusterMaster
                             Ganglia
                             Nagios




2013/3/21                              18
运维 – Job统计




            定期产生Job运行状况报表


2013/3/21                         19
运维 – 数据迁移(案例)

                      •   小数据中心->大数据中心
                      •   Distcp
                      •   Seed Nodes
                      •   Balance




2013/3/21                            20
Hadoop生态系统 -
                            构建完整的解决方案
                                                         User, Applications

                                                  API/QL                                  API/QL
            User                                                               Hive/Pig
             Big                               HugeTable
            Data

                                                                              MapReduce
            User
                   Flume/
             Big             Bigtable            HBase                                             Oozie
            Data    Flive        Bigtable
                    ……
                    ……

            User
             Big               file
                                                                 HDFS
                                        file      file
            Data




                                       Shared Cluster of Servers
2013/3/21                                                                                                  21
Hadoop生态系统 -
            选择合适的工具解决合适的问题




               Hive vs. Pig. vs. Java vs. Others
2013/3/21                                          22
性能评估测试 – Benchmark工具
   • 写数据操作(入库)性能测试




   • 读数据操作(查询)性能测试




2013/3/21                          23
性能评估测试 – Benchmark工具
                                                                                                              SLA核心指标
                                                                                                              •   Throughput
                                                                                                                   – tThrou :Total Throughput
                                                                                                                       (operation count)
                                                                                                                   – dThrou : Delta Throughput
                                                                                                                       (operation count)

                                                                                                              •   Latency
                                                                                                                    – tAvgLat: Total Average
     percentage of read ops                                                                                            Latency (ms)
   25.00%
                                                                                                                    – dAvgLat: Delta Average
                                                                                                                       Latency (ms)
   20.00%
   15.00%                                                                                                           – dMaxLat : Delta Maximum
   10.00%
                                                                                                                       Latency (ms)
    5.00%                                                                                                           – dMinLat : Delta Minimum
    0.00%                                                                                                              Latency (ms)
            1   3   5   7   9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61
                                                        100ms                                                 •   Quantile %

                                                                                                              •   Total : from benchmark start to
    Read Throughput: average ~140 ops/s; per-node: average ~16 ops/s                                             present.
    Latency: average ~500ms, 97% < 2s (SLA)                                                                  •   Delta: between each statistical
    Bottleneck: disk IO (random seek) (CPU load is very low)                                                     interval (2 minutes here)



2013/3/21                                                                                                                                           24
Known Issues and Work Arounds
• Hadoop系列产品还有很多已知的和未知的问题

• 这里只是举例:
      –     CentOS/RedHat Linux: transparent hugepage compaction
      –     HDFS: 正在写的文件不能读
      –     MapReduce: LZO压缩文件index过大,OOME
      –     Hive: MySQL Connection长时间连接中断导致Job失败
      –     HBase: 多CF的Memstore Flush触发机制
      –     …
2013/3/21                                                          25
Hadoop优化
•   MapReduce
•   HBase
•   Flume
•   Hive
•   Pig
•   Tools


2013/3/21                  26
Hadoop优化 @MapReduce性能
                       Job Startup Latency (seconds)                                              Job Startup Latency (seconds)
                        Total Tasks (32 maps, 4 reduces)                                           Total Tasks (96 maps, 4 reduces)
30                                                                          50                     43
                         24
                                          21                                40
20                                                                          30                                        24
                                                                            20
10
                                                                1           10                                                            1
 0                                                                           0
      CDH3u2 (Cloudera)            CDH3u2 (Cloudera)     HDH3u2 (Hanborq)         CDH3u2 (Cloudera) CDH3u2 (Cloudera)           HDH3u2 (Hanborq)
     (reuse.jvm disabled)         (reuse.jvm enabled)                            (reuse.jvm disabled) (reuse.jvm enabled)

     Sort Avoidance and Aggregation                                                                 Real Aggregation Jobs
                       2400
                                                             2186                                   700
                       2200
                       2000                                                                         600
                       1800
                       1600                                                                         500
                       1400




                                                                                 time (seconds)
                                                                                                    400
                       1200
      time (seconds)




                       1000                                                                         300
                       800                                          615
                       600                                                                          200
                       400                     216 198
                              197 175                                                               100
                       200
                         0                                                                              0
                               Case1            Case2          Case3                                        Case1-1   Case2-1   Case1-2       Case2-2
CHD3u2 (Cloudera)               197             216            2186         CDH3u2 (Cloudera)                238       603       136           206
HDH (Hanborq)                   175             198             615         HDH (Hanborq)                    233       578        96           151
                                                                                                                                                        27
Thank You Very Much!




2013/3/21                          28

More Related Content

Hadoop大数据实践经验

  • 1. Hadoop大数据实践经验 2012年12月 Schubert Zhang, Stephen Xie, Clay Jiang
  • 2. 汉播与开源(Hadoop Ecosystem) 开源项目代码、补丁、问题报告: 为开源社区提供文档、测试报告和贡献资料: HBASE-1778、HBASE-1818、HBASE-1841、HBASE- http://www.slideshare.net/hanborq 1978 、HBASE-1902、HBASE-3943、HBASE-1296、 http://www.slideshare.net/schubertzhang MAPREDUCE-3685 、MAPREDUCE-4039、 http://hbase.apache.org/book.html#regions.arch CASSANDRA-1729 …… http://github.com/hanborq 汉播与开源 http://slideshare.net/hanborq http://slideshare.net/schubertzhang 2013/3/21 2
  • 5. 集群规划 - Hadoop版本选择 • 开源发布 – Apache/Hortonworks – Cloudera – Facebook – MapR – Hanborq or BigCloud … • Hadoop, HBase, etc. 2013/3/21 5
  • 6. 集群规划 – 硬件选择 • 什么是Commodity Hardware? • CPU:Memory:Disk,依赖于workload特性需求 • JBOD vs. RAID vs. SPAN/BIG • 虚拟机、Blades、SAN不适用 • Master节点 • Worker(Slave)节点 – NameNode and SecondaryNameNode – JobTracker – 存储+计算 – 可靠性要求更高 – 存储密集(DW) • 双电源 • 捆绑网口 – 保留20~30%磁盘空间做MapReduce、 • RAID1 vs. RAID10 vs. RAID5 HDFS、HBase临时数据 • 专用独立的硬盘 • 备份到NFS – 每个task大概1~4GB内存,48GB内 – 大内存 存支持约10~20 tasks • NameNode: 1GB 大约100万Blocks, 小文件问题 • JobTracker: History Task Status, Counters, etc. (mapred.jobtracker.completeuserjobs.maximum) – 小硬盘 • < 1TB即可,如500GB 2013/3/21 6
  • 7. 集群规划 – 硬件选择 – 举例 2013/3/21 7
  • 8. 集群规划 – 集群大小 • 存储和计算能力需求 – CPU、Memory、存储、Disk IO – 计算作业的频率 • 按存储需求来估算 (常用) – 长期存储的历史数据 – 每日增量的数据 – 实际参与计算的数据 • 按计算能力来估算 (较难) 2013/3/21 8
  • 9. 集群规划 – OS及内核调优 • 操作系统 – RHEL/CentOS/Ubuntu … – JDK (http://wiki.apache.org/hadoop/HadoopJavaVersions) • 1.6.0_24/26/31 • -XX:+UseCompressedOops • GC options – cron/ntp/ssh/sendmail/rsync/sysstat/dstat – Hostname和DNS – 用户,组,权限 • 内核调优 – ulimit: open files, max user processes, etc. – vm.swappiness – vm.overcommit_memory – … 2013/3/21 9
  • 10. 集群规划 – 磁盘规划 • Linux文件系统 – Ext3 – Ext4 (extent-based, sequential) – Xfs (extent-based, concurrent) – LVM (anti.) 2013/3/21 10
  • 11. 集群规划 – 网络规划 • 考虑HDFS/MapReduce 1Gb vs. 10Gb (1) 两层树结构 (中小集群) (2) 三层树结构 (大集群瓶颈) • East/West vs. North/South流量模型 • 写穿 • Shuffle • 机架拓扑,交换机拓扑 • 读:尽量本地;写:本地优先 • 10Gb: low latency, high throughput • 接入交换机:10Gb的价格是1Gb的三倍 • ETL:10Gb • Bonding ->10Gb • CLOS Network: http://research.google.com/pubs/pub36740.html http://www.csdn.net/article/2011-05-20/298348 (3) Spine Fabric (扩展性好) • Redundancy 2013/3/21 11
  • 12. 集群自动化部署 - ClusterMaster • ClusterMaster是一款自动化部署和运维系统。旨在解决大规模 集群部署和运维过程中的几个核心问题:操作系统部署、应用部 署及管理、配置管理、性能数据采集、报警监控。 • ClusterMaster集成Kickstart、Cobbler、Puppet、Ganglia、 Nagios等开源软件为一体,向用户提供统一的Web管理界面。 • 依托强大的开源软件,ClusterMaster具有良好的可扩展性,可 以应对Linux集群运维中的各种应用部署和操作系统部署需求。 用户只需提供部署脚本和安装包,剩下的工作都将由 ClusterMaster自动完成。 2013/3/21 12
  • 15. 运维 - HDFS WebUI和运维策略 2013/3/21 15
  • 16. 运维 – MapReduce WebUI和运维策略 2013/3/21 16
  • 17. 运维 – 善用Metrics 有选择地集成Ganglia或OpenTSDB实现关键Metrics实时可视化。 2013/3/21 17
  • 18. 运维 – 监控报警可视化工具 ClusterMaster Ganglia Nagios 2013/3/21 18
  • 19. 运维 – Job统计 定期产生Job运行状况报表 2013/3/21 19
  • 20. 运维 – 数据迁移(案例) • 小数据中心->大数据中心 • Distcp • Seed Nodes • Balance 2013/3/21 20
  • 21. Hadoop生态系统 - 构建完整的解决方案 User, Applications API/QL API/QL User Hive/Pig Big HugeTable Data MapReduce User Flume/ Big Bigtable HBase Oozie Data Flive Bigtable …… …… User Big file HDFS file file Data Shared Cluster of Servers 2013/3/21 21
  • 22. Hadoop生态系统 - 选择合适的工具解决合适的问题 Hive vs. Pig. vs. Java vs. Others 2013/3/21 22
  • 23. 性能评估测试 – Benchmark工具 • 写数据操作(入库)性能测试 • 读数据操作(查询)性能测试 2013/3/21 23
  • 24. 性能评估测试 – Benchmark工具 SLA核心指标 • Throughput – tThrou :Total Throughput (operation count) – dThrou : Delta Throughput (operation count) • Latency – tAvgLat: Total Average percentage of read ops Latency (ms) 25.00% – dAvgLat: Delta Average Latency (ms) 20.00% 15.00% – dMaxLat : Delta Maximum 10.00% Latency (ms) 5.00% – dMinLat : Delta Minimum 0.00% Latency (ms) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 100ms • Quantile % • Total : from benchmark start to  Read Throughput: average ~140 ops/s; per-node: average ~16 ops/s present.  Latency: average ~500ms, 97% < 2s (SLA) • Delta: between each statistical  Bottleneck: disk IO (random seek) (CPU load is very low) interval (2 minutes here) 2013/3/21 24
  • 25. Known Issues and Work Arounds • Hadoop系列产品还有很多已知的和未知的问题 • 这里只是举例: – CentOS/RedHat Linux: transparent hugepage compaction – HDFS: 正在写的文件不能读 – MapReduce: LZO压缩文件index过大,OOME – Hive: MySQL Connection长时间连接中断导致Job失败 – HBase: 多CF的Memstore Flush触发机制 – … 2013/3/21 25
  • 26. Hadoop优化 • MapReduce • HBase • Flume • Hive • Pig • Tools 2013/3/21 26
  • 27. Hadoop优化 @MapReduce性能 Job Startup Latency (seconds) Job Startup Latency (seconds) Total Tasks (32 maps, 4 reduces) Total Tasks (96 maps, 4 reduces) 30 50 43 24 21 40 20 30 24 20 10 1 10 1 0 0 CDH3u2 (Cloudera) CDH3u2 (Cloudera) HDH3u2 (Hanborq) CDH3u2 (Cloudera) CDH3u2 (Cloudera) HDH3u2 (Hanborq) (reuse.jvm disabled) (reuse.jvm enabled) (reuse.jvm disabled) (reuse.jvm enabled) Sort Avoidance and Aggregation Real Aggregation Jobs 2400 2186 700 2200 2000 600 1800 1600 500 1400 time (seconds) 400 1200 time (seconds) 1000 300 800 615 600 200 400 216 198 197 175 100 200 0 0 Case1 Case2 Case3 Case1-1 Case2-1 Case1-2 Case2-2 CHD3u2 (Cloudera) 197 216 2186 CDH3u2 (Cloudera) 238 603 136 206 HDH (Hanborq) 175 198 615 HDH (Hanborq) 233 578 96 151 27
  • 28. Thank You Very Much! 2013/3/21 28