hadoop大数据实践经验
DESCRIPTION
Practice on Hadoop Big Data.TRANSCRIPT
Hadoop大数据实践经验
2012年12月
Schubert Zhang, Stephen Xie, Clay Jiang
汉播与开源(Hadoop Ecosystem)
2013/3/21 2
开源项目代码、补丁、问题报告: HBASE-1778、HBASE-1818、HBASE-1841、HBASE-1978 、HBASE-1902、HBASE-3943、HBASE-1296、 MAPREDUCE-3685 、MAPREDUCE-4039、CASSANDRA-1729 ……
为开源社区提供文档、测试报告和贡献资料: http://www.slideshare.net/hanborq http://www.slideshare.net/schubertzhang http://hbase.apache.org/book.html#regions.arch
汉播与开源 http://github.com/hanborq http://slideshare.net/hanborq
http://slideshare.net/schubertzhang
Hadoop实践概述 (1)
2013/3/21 3
Hadoop实践概述 (2)
2013/3/21 4
集群规划 - Hadoop版本选择
• 开源发布
– Apache/Hortonworks
– Cloudera
– 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不适用
2013/3/21 6
• Master节点 – NameNode and SecondaryNameNode – JobTracker – 可靠性要求更高
• 双电源 • 捆绑网口 • RAID1 vs. RAID10 vs. RAID5 • 专用独立的硬盘 • 备份到NFS
– 大内存 • NameNode: 1GB 大约100万Blocks, 小文件问题 • JobTracker: History Task Status, Counters, etc.
(mapred.jobtracker.completeuserjobs.maximum)
– 小硬盘 • < 1TB即可,如500GB
• Worker(Slave)节点 – 存储+计算
– 存储密集(DW)
– 保留20~30%磁盘空间做MapReduce、HDFS、HBase临时数据
– 每个task大概1~4GB内存,48GB内存支持约10~20 tasks
集群规划 – 硬件选择 – 举例
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
集群规划 – 网络规划
2013/3/21 11
• 考虑HDFS/MapReduce 1Gb vs. 10Gb
(1) 两层树结构 (中小集群) (2) 三层树结构 (大集群瓶颈)
(3) Spine Fabric (扩展性好)
• 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 • Redundancy
集群自动化部署 - ClusterMaster
• ClusterMaster是一款自动化部署和运维系统。旨在解决大规模集群部署和运维过程中的几个核心问题:操作系统部署、应用部署及管理、配置管理、性能数据采集、报警监控。
• ClusterMaster集成Kickstart、Cobbler、Puppet、Ganglia、Nagios等开源软件为一体,向用户提供统一的Web管理界面。
• 依托强大的开源软件,ClusterMaster具有良好的可扩展性,可以应对Linux集群运维中的各种应用部署和操作系统部署需求。用户只需提供部署脚本和安装包,剩下的工作都将由ClusterMaster自动完成。
2013/3/21 12
ClusterMaster
2013/3/21 13
集群自动化部署 – Hdeploy/HTCfg
2013/3/21 14
HugeTable提供并行系统部署和配置工具HTCfg,可以方便地对系统依赖软件、Linux环境配置、HugeTable的各个软件模块进行安装部署和配置。使得用户不必一台一台地对分布式系统逐个安装和配置。
Hdeploy的deploy.dd文件片段
运维 - HDFS WebUI和运维策略
2013/3/21 15
运维 – MapReduce WebUI和运维策略
2013/3/21 16
运维 – 善用Metrics
2013/3/21 17
有选择地集成Ganglia或OpenTSDB实现关键Metrics实时可视化。
运维 – 监控报警可视化工具
2013/3/21 18
ClusterMaster Ganglia Nagios
运维 – Job统计
2013/3/21 19
定期产生Job运行状况报表
运维 – 数据迁移(案例)
2013/3/21 20
• 小数据中心->大数据中心 • Distcp • Seed Nodes • Balance
Hadoop生态系统 - 构建完整的解决方案
2013/3/21 21
HDFS
Shared Cluster of Servers
file file file
HBase
HugeTable
BigtableBigtable
MapReduce
Hive/Pig
Flume/Flive
User, Applications
API/QLAPI/QL
User Big
Data
User Big
Data
User Big
Data
…………
Oozie
Hadoop生态系统 - 选择合适的工具解决合适的问题
2013/3/21 22
Hive vs. Pig. vs. Java vs. Others
性能评估测试 – Benchmark工具
2013/3/21 23
• 写数据操作(入库)性能测试
• 读数据操作(查询)性能测试
性能评估测试 – Benchmark工具
2013/3/21 24
Read Throughput: average ~140 ops/s; per-node: average ~16 ops/s
Latency: average ~500ms, 97% < 2s (SLA)
Bottleneck: disk IO (random seek) (CPU load is very low)
0.00%
5.00%
10.00%
15.00%
20.00%
25.00%
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
percentage of read ops
SLA核心指标 • Throughput
– tThrou :Total Throughput (operation count)
– dThrou : Delta Throughput (operation count)
• Latency – tAvgLat: Total Average
Latency (ms) – dAvgLat: Delta Average
Latency (ms) – dMaxLat : Delta Maximum
Latency (ms) – dMinLat : Delta Minimum
Latency (ms)
• Quantile %
• Total : from benchmark start to
present.
• Delta: between each statistical interval (2 minutes here)
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性能
27
24 21
1 0
10
20
30
CDH3u2 (Cloudera)(reuse.jvm disabled)
CDH3u2 (Cloudera)(reuse.jvm enabled)
HDH3u2 (Hanborq)
Job Startup Latency (seconds) Total Tasks (32 maps, 4 reduces)
43
24
1 0
10
20
30
40
50
CDH3u2 (Cloudera)(reuse.jvm disabled)
CDH3u2 (Cloudera)(reuse.jvm enabled)
HDH3u2 (Hanborq)
Job Startup Latency (seconds) Total Tasks (96 maps, 4 reduces)
Case1 Case2 Case3
CHD3u2 (Cloudera) 197 216 2186
HDH (Hanborq) 175 198 615
197 216
2186
175 198
615
0
200
400
600
800
1000
1200
1400
1600
1800
2000
2200
2400
tim
e (
seco
nd
s)
Sort Avoidance and Aggregation
Case1-1 Case2-1 Case1-2 Case2-2
CDH3u2 (Cloudera) 238 603 136 206
HDH (Hanborq) 233 578 96 151
0
100
200
300
400
500
600
700
tim
e (
seco
nd
s)
Real Aggregation Jobs
Thank You Very Much!
2013/3/21 28