59
Hadoop 与与与与与 与与与与与 与与与 与与 与与与与

Hadoop 与数据立方 原理和实践

  • Upload
    gaurav

  • View
    132

  • Download
    0

Embed Size (px)

DESCRIPTION

Hadoop 与数据立方 原理和实践. 演讲人:王磊 技术总监. Hadoop 发展史. 主要内容. HDFS 简介. 第一部分. 第二部分. MapReduce 简介与实践. 第三部分. 数据 立方简介与实践. 主要内容. HDFS 简介与实践. HDFS 简介. 第一部分. 1.1. HDFS 介绍. HDFS 系统架构. 1.2. HDFS 内部机制. 1.3. 1.4. HDFS 可靠性. 主要内容. HDFS 简介. 第一部分. 1.1. HDFS 简介. HDFS 介绍. HDFS 系统架构. 1.2. - PowerPoint PPT Presentation

Citation preview

Page 1: Hadoop 与数据立方 原理和实践

Hadoop 与数据立方原理和实践演讲人:王磊技术总监

Page 2: Hadoop 与数据立方 原理和实践

Hadoop 发展史

Page 3: Hadoop 与数据立方 原理和实践

主要内容第一部分第二部分 MapReduce 简介与实践第三部分 数据立方简介与实践

HDFS 简介

Page 4: Hadoop 与数据立方 原理和实践

主要内容第一部分

1.1

1.2

HDFS 简介与实践HDFS 简介

HDFS 系统架构HDFS 内部机制

HDFS 介绍

HDFS 可靠性1.3

1.4

Page 5: Hadoop 与数据立方 原理和实践

主要内容第一部分

1.1

1.2

HDFS 简介

HDFS 系统架构HDFS 内部机制

HDFS 简介

HDFS 可靠性1.3

1.4

HDFS 介绍

Page 6: Hadoop 与数据立方 原理和实践

什么是 HDFS?

• Hadoop Distributed File System• 用于存储海量文件• 支持线性扩展• 支持高可靠性

Page 7: Hadoop 与数据立方 原理和实践

HDFS 适合做什么?• 存储并管理 PB 级数据• 注重数据处理的吞吐量• 一致性模型为: write-once-read-many 存取模式

Page 8: Hadoop 与数据立方 原理和实践

HDFS 不适合做什么?• 存储小文件 ( 不建议使用 )• 大量的随机读 ( 不建议使用 )• 需要对文件的修改 ( 不支持 )

Page 9: Hadoop 与数据立方 原理和实践

主要内容第一部分

1.1

1.2

HDFS 简介

系统架构HDFS 内部机制

HDFS 介绍

HDFS 可靠性1.3

1.4

HDFS 系统架构

Page 10: Hadoop 与数据立方 原理和实践

设计目标假设:节点失效是常态

理想: 1. 任何一个节点失效,不影响 HDFS 服务2. HDFS 可以自动完成副本的复制

Page 11: Hadoop 与数据立方 原理和实践

系统架构

Page 12: Hadoop 与数据立方 原理和实践

主要内容第一部分

1.1

1.2

HDFS 简介

系统架构HDFS 内部机制

HDFS 介绍

HDFS 可靠性1.3

1.4

HDFS 内部机制

Page 13: Hadoop 与数据立方 原理和实践

Example : HDFS 如何写文件?

Write packet

Create file

Write packet

Write packetSend ack

Send ack

Send ack

Close file

Page 14: Hadoop 与数据立方 原理和实践

HDFS 副本放置策略

机架0 机架1

Page 15: Hadoop 与数据立方 原理和实践

Example : HDFS 如何读文件?

Read block

Open file

Close file

Get block location

Page 16: Hadoop 与数据立方 原理和实践

主要内容第一部分

1.1

1.2

HDFS 简介

系统架构HDFS 内部机制

HDFS 介绍

HDFS 可靠性1.3

1.4 HDFS 可靠性

Page 17: Hadoop 与数据立方 原理和实践

NameNode 可靠性问题• 持久化元数据

– 操作日志( edit log )• 记录文件创建,删除,修改文件属性等操作

– Fsimage• 包含完整的命名空间• File -> Block 的映射关系• 文件的属性( ACL, quota, 修改时间等)

Page 18: Hadoop 与数据立方 原理和实践

NFS服务器 Namenode1(Standby)Namenode0(Pri mary)

客户端00

DataNode向namenode0发送心跳信息,其中包括block的位置信息

写入日志

读取Pri mary日志并日志镜像做CheckPoi nt用户访问

datanode00 datanode03datanode02datanode01

DataNode也向namenode1发送心跳信息,其中包括

block的位置信息

客户端01

客户端02

客户端03

NameNode 热备方案

Page 19: Hadoop 与数据立方 原理和实践

主要内容第二部分

2.1

2.2

MapReduce 简介与实践

实例 1 : wordcount

实例 2 :两表关联

MapReduce 简介

2.3

Page 20: Hadoop 与数据立方 原理和实践

主要内容第二部分

2.1

MapReduce 简介与实践

实例: wordcount

MapReduce 简介2.2

MapReduce 简介

Page 21: Hadoop 与数据立方 原理和实践

传统并行计算模型 MPI 与 MapReduce 的比较MPI MapReduce

编程复杂 编程简单调试复杂 调试简单

可靠性比较差 可靠性好偏重于计算密集型计算 偏重于数据密集型计算

Page 22: Hadoop 与数据立方 原理和实践
Page 23: Hadoop 与数据立方 原理和实践

数据具有什么样特征的计算任务是 MapReduce 可以处理的? 一个计算任务所处理的数据若可以分为具有同样计算过程的数据块,并且这些数据块之间不存在数据依赖关系,则可以用 MapReduce 去处理。

大数据计算任务

子任务 子任务 子任务 子任务……

任务划分

计算结果结果合并

Page 24: Hadoop 与数据立方 原理和实践

海量数据存储

……数据划分

Map Map Map Map

初始kv键值对

初始kv键值对

初始kv键值对

初始kv键值对

中 间 结 果(k1,val)(k2,val)(k3,val)

(k1,val)(k3,val)

(k2,val)(k3,val)

(k1,val)(k2,val)(k3,val)

Barrier : Aggregation and Shuffle

Reduce Reduce Reduce

(k1,values) (k2,values) (k3,values)

计算结果(K1,val) (K2,val) (K3,val)

Page 25: Hadoop 与数据立方 原理和实践

主要内容第二部分

2.1

MapReduce 简介与实践

实例 2 :两表关联MapReduce 简介

2.3 实例: wordcount

Page 26: Hadoop 与数据立方 原理和实践

实例: wordcount• 输入: one document per record• 用户实现 map function ,输入为

– key = document URL– value = document contents

• map 输出 (potentially many) key/value pairs. – 对 document 中每一个出现的词,输出一个记录 <word, “1”>

Page 27: Hadoop 与数据立方 原理和实践

• MapReduce 运行系统 ( 库 ) 把所有相同 key 的记录收集到一起 (shuffle/sort)• 用户实现 reduce function 对一个 key 对应的 values 计算

– 求和 sum

• Reduce 输出 <key, sum>•

实例: wordcount

Page 28: Hadoop 与数据立方 原理和实践

主要内容第三部分

3.1

3.2

数据立方简介与实践

数据立方体系架构实例:互联网数据处理案例

数据立方简介

3.3

数据立方性能测试3.4

Page 29: Hadoop 与数据立方 原理和实践

主要内容第三部分

3.1

3.2

数据立方简介与实践

数据立方体系架构实例:互联网数据处理案例

数据立方简介

3.3

数据立方简介

数据立方性能测试3.4

Page 30: Hadoop 与数据立方 原理和实践

数据立方是南京云创存储科技有限公司完全自主研发的国产大数据云处理平台,具有从 PB 级的数据中挖掘出有价值信息并进行快捷、高效处理的能力。

DataCube( 数据立方 )

Page 31: Hadoop 与数据立方 原理和实践

数据立方的创新与优势

高效的分布式索引高速分发的并行计算框架支持 60% 的 SQL 语句大数据的高速入库用户接口友好集群规模线性扩展高可靠,无单点故障

Page 32: Hadoop 与数据立方 原理和实践

2012 年 11 月初,云创存储携手 Intel 推出了数据立方云计算一体机

Page 33: Hadoop 与数据立方 原理和实践

主要内容第三部分

3.1

3.2

数据立方简介与实践

数据立方体系架构实例:互联网数据处理案例

数据立方简介

3.3

数据立方体系架构

数据立方性能测试3.4

Page 34: Hadoop 与数据立方 原理和实践

数据立方体系架构

Page 35: Hadoop 与数据立方 原理和实践

DataCube( 数据立方 ) 的索引机制

Page 36: Hadoop 与数据立方 原理和实践

分布式并行计算架构

Page 37: Hadoop 与数据立方 原理和实践

并行计算架构上作业执行过程

查询索引文件HDFS 文件路径

+ 偏移量读取本地文件获取最终结果

Page 38: Hadoop 与数据立方 原理和实践

• MapReduce 架构的 job 提交过程较为复杂:• 1 , 客户端将作业提交到 JobTracker 有较长的延迟。• 2 , JobTracker将作业处理为 MapReduce 任务后,通过心跳信息将任务返回给 TaskTracker ,此过程中也存在延迟。• 相对于 MapReduce 架构,数据立方的作业提交是实时性的,在提交作业之前所需程序已经分发到所有计算节点。

相对于 MapReduce 架构,数据立方具有实时性、计算本地化以及负载均衡等优势。

Page 39: Hadoop 与数据立方 原理和实践

• MapReduce 架构虽然也遵循数据本地性,但仍会有很大比例的数据处理不是本地的。• 在作业提交后,数据立方的 master根据数据文件所在位置分配任务,这样在每个计算节点上要处理的 HDFS 上的数据块就在本地,这样避免了数据的移动,极大地减少了网络 IO负载,缩短了计算时间。

Page 40: Hadoop 与数据立方 原理和实践

• 数据立方具有良好的扩展性节点的动态扩展

Page 41: Hadoop 与数据立方 原理和实践

节点宕机任务重新分配子节点的容错

Page 42: Hadoop 与数据立方 原理和实践

主要内容第三部分

3.1

3.2

数据立方简介与实践

数据立方体系架构实例:查询与汇总

数据立方简介

3.3 实例:互联网数据处理案例数据立方性能测试3.4

Page 43: Hadoop 与数据立方 原理和实践

互联网数据处理案例

Page 44: Hadoop 与数据立方 原理和实践

案例背景• 1. 数据体量大 每天产生 300GB 的数据。• 2. 实时入库 每过一个小时客户端向服务器端提交数据,要求能够实时入库。• 3. 处理速度快 每天零时,启动定时任务对数据进行汇总,在半小时内完成并生成有价值的

数据,然后将汇总结果导入关系型数据库。

Page 45: Hadoop 与数据立方 原理和实践

测试环境软件名称 软件版本 数量

(套)数据立方云计算一体机

V1.0版本 1

设备名称 数量 CPU 内存 硬盘主控制服务器

1 双路四核,主频 2GHz 32G 2T*8

子处理服务器

8 双路四核,主频 2GHz 32G 2T*8

客户端 8 双路四核,主频 2GHz 32G 2T*8

软件配置

硬件配置

Page 46: Hadoop 与数据立方 原理和实践

网络拓扑图

Page 47: Hadoop 与数据立方 原理和实践

数据立方测试结果(未优化)第?次 数据量 入库时间 入库速度 平均入库速度

1 9.7198GB * 24 58 分 48 67.71 MB/秒 72.90 MB/秒2 9.7198GB * 24 53 分 28 74.46 MB/秒3 9.7198GB * 24 52 分 09 76.34 MB/秒

1 、 240GB 级数据 8客户端并行入库

240GB 级规模数据( http )http 汇总第?次 数据量 汇总时间 数据导出时间 mysql 入库(未设

置主键和索引)时间 总处理时间 总平均处理时间

1 9.7198GB * 24

16 分38 14.30秒 23.05秒 17 分 15.35

秒 16 分29.86秒2 9.7198GB *

2415 分

33 12.74秒 27.07秒 16 分 12.81秒

3 9.7198GB * 24

15 分21 14.81秒 25.61秒 16 分 01.42

2 、 240GB 级数据汇总

Page 48: Hadoop 与数据立方 原理和实践

数据立方测试结果(优化后)第?次 数据量 入库时间 入库速度 平均入库速度

1 9.7198GB * 24 48 分 48 81.58 MB/秒 89.21 MB/秒2 9.7198GB * 24 43 分 28 91.59 MB/秒3 9.7198GB * 24 42 分 09 94.45 MB/秒

1 、 240GB 级数据 8客户端并行入库

240GB 级规模数据( http )http 汇总第?次 数据量 汇总时间 数据导出时间 mysql 入库(未设

置主键和索引)时间 总处理时间 总平均处理时间

1 9.7198GB * 24

13 分38 13.30秒 23.05秒 14 分 14.35

秒 14 分28.38秒2 9.7198GB *

2413 分

33 12.64秒 27.07秒 14 分 12.71秒

3 9.7198GB * 24

13 分21 14.71秒 25.61秒 14 分 01.32

2 、 240GB 级数据汇总

Page 49: Hadoop 与数据立方 原理和实践

实时汇总系统信息图

Page 50: Hadoop 与数据立方 原理和实践

主要内容第三部分

3.1

3.2

数据立方简介与实践

数据立方体系架构实例:互联网数据处理案例

数据立方简介

3.3

数据立方性能测试3.4

Page 51: Hadoop 与数据立方 原理和实践

测试环境介绍

Page 52: Hadoop 与数据立方 原理和实践

测试环境介绍

软件环境序号 软件名称 版本

1 Red Hat Enterprise Linux Server v5.6

2 DataCube v1.03 Greenplum v4.2.1.0-build-3-

CommunityEdition

硬件环境序号 设备名称 数量 CPU 内存 硬盘

1 主控服务器 1 IntelE5-2620 2.0GB 8GB 2*3TB

SATA2 处理节点 4 IntelE5-2620

2.0GB 8GB 2*3TB SATA

3 客户端 4 IntelE5-2620 2.0GB 8GB 2*3TB

SATA4 H3C5024P-EI千兆

交换机 1 N/A N/A N/A

Page 53: Hadoop 与数据立方 原理和实践

测试结果• 入库性能• 查询性能

Page 54: Hadoop 与数据立方 原理和实践

字段序号 字段英文名称 字段中文名称 原字段类型 现字段类

型1

Time_ID 时间 ID (索引字段) NUMBER(12) BIGINT

2 FILESIZE_RNK_CD 文件大小层次编码 NUMBER(4) BIGINT

3 City_ID 城市标识 NUMBER(10) BIGINT

4 UserBrand_CD 用户品牌编码 NUMBER(4) BIGINT

5 CODE_ID 状态码标识 NUMBER(10) BIGINT

6 Collect_TMS 采样时间 TIMESTAMP STRING

7MSISDN 手机号码(索引字

段) VARCHAR2(15) STRING

。。。 。。。 。。。 。。。38

X_ONLINE_HOST_FLAG x-online-host 标识位 NUMBER(1) BIGINT

datacube_bigtable 的数据格式

Page 55: Hadoop 与数据立方 原理和实践

入库性能

Page 56: Hadoop 与数据立方 原理和实践

入库性能100倍

Page 57: Hadoop 与数据立方 原理和实践

SQL语句

Select Time_ID,FILESIZE_RNK_CD,City_ID,UserBrand_CD,CODE_ID,Collect_TMS,MSISDN,TS_Incoming_HttpReq_TMS,TS_Outgoing_HttpReq_TMS,TS_Incoming_HttpResp_TMS,TS_Outgoing_HttpResp_TMS,TS_Ack_Abort_TMS,Session_Dur,URL,SP_DOMAIN,File_Type,SERVICE_TYPE,USER_AGENT_ORIGIN,USER_AGENT,SOFT_VERSION,HttpSatus_CD,HTTP_STATUS_SUBCODE,BEARER_TYPE,PROTOCAL_TYPE,Client_Addr,Downstream_Vol,Upstream_Vol,GW_IP,CDRTYPE_CD,Province_ID,MANUFACTURER_ID,System_ID,SESSION_ID,GW_AVGDELAY_DUR,SP_AVGDELAY_DUR,FILE_NAME,PORT_ID,X_ONLINE_HOST_FLAG,COLLECT_DT from datacube_bigtable where time_id_index>=2013070800 and time_id_index<=2013070823 and msisdn_index=130 ORDER BY DOWNSTREAM_VOL;

备注 对 1天内的 130 手机号段的上网下载流量排序

测试用例

Page 58: Hadoop 与数据立方 原理和实践

查询性能100倍

Page 59: Hadoop 与数据立方 原理和实践

谢谢!