hadoop大数据实践经验

28
Hadoop大数据实践经验 201212Schubert Zhang, Stephen Xie, Clay Jiang

Upload: schubert-zhang

Post on 13-Dec-2014

810 views

Category:

Technology


3 download

DESCRIPTION

Practice on Hadoop Big Data.

TRANSCRIPT

Page 1: Hadoop大数据实践经验

Hadoop大数据实践经验

2012年12月

Schubert Zhang, Stephen Xie, Clay Jiang

Page 2: Hadoop大数据实践经验

汉播与开源(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

Page 3: Hadoop大数据实践经验

Hadoop实践概述 (1)

2013/3/21 3

Page 4: Hadoop大数据实践经验

Hadoop实践概述 (2)

2013/3/21 4

Page 5: Hadoop大数据实践经验

集群规划 - Hadoop版本选择

• 开源发布

– Apache/Hortonworks

– Cloudera

– Facebook

– MapR

– Hanborq or BigCloud …

• Hadoop, HBase, etc.

2013/3/21 5

Page 6: Hadoop大数据实践经验

集群规划 – 硬件选择

• 什么是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

Page 7: Hadoop大数据实践经验

集群规划 – 硬件选择 – 举例

2013/3/21 7

Page 8: Hadoop大数据实践经验

集群规划 – 集群大小

• 存储和计算能力需求 – CPU、Memory、存储、Disk IO – 计算作业的频率

• 按存储需求来估算 (常用)

– 长期存储的历史数据 – 每日增量的数据 – 实际参与计算的数据

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

2013/3/21 8

Page 9: Hadoop大数据实践经验

集群规划 – 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

Page 10: Hadoop大数据实践经验

集群规划 – 磁盘规划

• Linux文件系统 – Ext3 – Ext4 (extent-based, sequential) – Xfs (extent-based, concurrent) – LVM (anti.)

2013/3/21 10

Page 11: Hadoop大数据实践经验

集群规划 – 网络规划

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

Page 12: Hadoop大数据实践经验

集群自动化部署 - ClusterMaster

• ClusterMaster是一款自动化部署和运维系统。旨在解决大规模集群部署和运维过程中的几个核心问题:操作系统部署、应用部署及管理、配置管理、性能数据采集、报警监控。

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

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

2013/3/21 12

Page 13: Hadoop大数据实践经验

ClusterMaster

2013/3/21 13

Page 14: Hadoop大数据实践经验

集群自动化部署 – Hdeploy/HTCfg

2013/3/21 14

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

Hdeploy的deploy.dd文件片段

Page 15: Hadoop大数据实践经验

运维 - HDFS WebUI和运维策略

2013/3/21 15

Page 16: Hadoop大数据实践经验

运维 – MapReduce WebUI和运维策略

2013/3/21 16

Page 17: Hadoop大数据实践经验

运维 – 善用Metrics

2013/3/21 17

有选择地集成Ganglia或OpenTSDB实现关键Metrics实时可视化。

Page 18: Hadoop大数据实践经验

运维 – 监控报警可视化工具

2013/3/21 18

ClusterMaster Ganglia Nagios

Page 19: Hadoop大数据实践经验

运维 – Job统计

2013/3/21 19

定期产生Job运行状况报表

Page 20: Hadoop大数据实践经验

运维 – 数据迁移(案例)

2013/3/21 20

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

Page 21: Hadoop大数据实践经验

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

Page 22: Hadoop大数据实践经验

Hadoop生态系统 - 选择合适的工具解决合适的问题

2013/3/21 22

Hive vs. Pig. vs. Java vs. Others

Page 23: Hadoop大数据实践经验

性能评估测试 – Benchmark工具

2013/3/21 23

• 写数据操作(入库)性能测试

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

Page 24: Hadoop大数据实践经验

性能评估测试 – 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)

Page 25: Hadoop大数据实践经验

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

Page 26: Hadoop大数据实践经验

Hadoop优化

• MapReduce

• HBase

• Flume

• Hive

• Pig

• Tools

2013/3/21 26

Page 27: Hadoop大数据实践经验

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

Page 28: Hadoop大数据实践经验

Thank You Very Much!

2013/3/21 28