Top Banner
Big Data, Big Deal? 林默 微软资深架构顾问
39

Big data, big deal ms it168文库

Jul 02, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Big data, big deal ms it168文库

Big Data, Big Deal? 林默 微软资深架构顾问

Page 2: Big data, big deal ms it168文库

向上扩展

哈勃望远镜的能力,能让我们看到令人惊异的45 万光年的天线星系图像

伴随着向上扩展的特征是:

• 非商业化

• 专用的设备

• 单点故障

Page 3: Big data, big deal ms it168文库

向外扩展 | 商业化分布式计算

哈勃望远镜可以提供巨型银河星云惊人的视图,但是如果是无线电波又怎么样?

• 不只是从一个地方,而是从众多的观测站里看到的

• SETI: 5.2M 参与者, 1021 浮点计算

伴随着商业化分布式计算的特征是

• 基于本地的分布式计算

• 有成千上百的机器参与

• 自动复制功能防止单点故障

Page 4: Big data, big deal ms it168文库

1. McKinsey&Company, McKinsey Global Survey Results, Minding Your Digital Business, 2012 2. IDC Market Analysis, Worldwide Big 数据 Technology and Services 2012–2015 Forecast , 2012

49%的世界顶级CEOs和CIOs正在使用大数据做客户分析

2.7 3.9

5.1 6.5

0

5

10

2012 2013 2014 2015

Bil

lio

ns

$

39% 复合增长率

大数据的软件增长

1.8 2.5

3.4

4.6

0

2

4

6

2012 2013 2014 2015

Bil

lio

ns

$

34%复合增长率

大数据的成长机会

Page 5: Big data, big deal ms it168文库

我怎么根据天气和交通状况来优化我的物流安排?

公众对我品牌和产品的印象怎么样? 我怎么预测将来的财

务收入?

大数据让企业问出新的问题

Page 6: Big data, big deal ms it168文库

为什么大数据突然成为热点?

6

• 各种类型的数据爆发式的增长 – 传感器(例如:位置,声音 …) – Web 2.0 (例如:微博, 维基 … ) – Web 点击

• 认识到旧数据的价值而无法随意删除

• 硬件价格,特别是存储成本的急剧下降

0 1 1 0 0

0 0 1 0 1 1

1 0 1 0 0 1

0 0 1 0 1 1

1 1 0 0 1 1

0 0 1 0 1 1

1 1 1 1 1 1

0 0 1 0

0 0 1 0

Page 7: Big data, big deal ms it168文库

为什么?NoSQL?

• 更灵活的数据模型

–使用JSON作为数据模型

–没有“schema优先”的需求

• 相对松散的一致性模型

–愿意牺牲一点一致性来保障可用性

• 大大节约从数据采集到获得结果所需的时间

7

Page 8: Big data, big deal ms it168文库

减少获得结果的时间

SQL:

8

NoSQL:

没有数据清洗!

没有数据传输!

立刻分析数据!

RDBMS

数据 Arrives

Derive a schema

Cleanse the 数据

Transform the 数据

Load the 数据

SQL Queries

1

2

3 4 5

6

数据 Arrives

Application Program

1 2

NOSQL System

Page 9: Big data, big deal ms it168文库

两个不同的世界

9

结构化 非结构化 &

关系型数据库 结构化数据/已知的 schema

ACID

事务型

SQL

严格一致性模型

ETL

得到结果的时间较长

成熟, 稳定, 高效

NoSQL 系统 (非)(半)结构化数据/没有shcema

非 ACID

非事务型

No SQL

最终一致性

No ETL

得到结果的时间较快

灵活

Page 10: Big data, big deal ms it168文库

我们正面对一场数据领域的变革么?

• 这个世界已经真正地改变了

• 关系型系统在数据世界里不再是唯一的

• SQL 的兄弟们必须接受这个现实并考虑如何部署 Hadoop这样的解决方案

10

关系型数据库不会灭亡并继续统治中小型数据的事务处理系统

但现代的业务往往是两者的结合了

Page 11: Big data, big deal ms it168文库

要求: 可扩展到PBs和1000个节点 高容错 简单的编程

11

• 大量的点击数据留不得不进行存储和分析

2006

Hadoop

GFS + MapReduce 存储 处理

2003

MR/GFS

Hadoop = HDFS + MapReduce

存储 处理

进化的开始

Page 12: Big data, big deal ms it168文库

Hadoop 生态系统

• HDFS – 分布式容错文件系统 • MapReduce – 写/执行分布式容错算法的框架 • Hive & Pig – 类SQL的描叙性语言 • Sqoop – 在HDFS和RDBMS传输数据 • + 其他…

12

HDFS

Map/

Reduce

Hive & Pig

Sqoop

Zoo

kee

pe

r

Seri

aliz

atio

n

HBase

ETL Tools

BI Reporting

RDBMS

Page 13: Big data, big deal ms it168文库

微软和Hadoop

• 基于Apache Hadoop的Windows Server和Windows Azure,以及AD的支持 – HDInsight Server – HDInsight Service

• Hive ODBC Driver 和 Add-in for Excel • JavaScript Framework for Hadoop • SQL Server and SQL Server Parallel 数据 Warehouse

connections for Hadoop • Sharepoint, Powerpivot和Powerview作为前端展示

13

Page 14: Big data, big deal ms it168文库

案例分享 - 泰国司法部用大数据优化案件调查

2年15天

Page 15: Big data, big deal ms it168文库

HDInsight Service 演示

Page 16: Big data, big deal ms it168文库

Power View 演示

Page 17: Big data, big deal ms it168文库

HDFS原理

17

Large File 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001 1100101010011100101010011100101010011100101010011100110010101001110010101001110010101001110010101001110010101001

… 6440MB

Block 1

Block 2

Block 3

Block 4

Block 5

Block 6

Block 100

Block 101

64MB 64MB 64MB 64MB 64MB 64MB

64MB 40MB

Block 1

Block 2

不同颜色代表不同节点 Block

3 Block

4 Block

5 Block

6 Block 100

Block 101

e.g., Block Size = 64MB

文件由一系列的块(blocks)组成 • 一般64MB但是可配置

• 每块都作为一个单独文件存储在本地文件系统 (e.g. NTFS)

Page 18: Big data, big deal ms it168文库

块的放置

• 缺省的块放置规则: – 第一个拷贝 写到创建文件的节点 – 第二个拷贝 写到同一个机柜的节点(减少网络交通问题) – 第三个拷贝 写到位于不同机柜上的节点(容错需求)

18

节点 5 节点 4 节点 3 节点 2 节点 1

Block 1

Block 3

Block 2

Block 1

Block 3

Block 2

Block 3

Block 2

Block 1

例如, 复制因子 = 3

Page 19: Big data, big deal ms it168文库

HDFS节点类型

• 主节点(Name节点) – 一个群集只有一个 – 负责在群集上的文件系统元数据操作,复制和定位文件块

• 备份节点 – 主节点的备份

• 数据节点 – 在群集的每一节点上一个实例

– 负责文件快的存储 – 对客户提供实际的数据

19

主节点 主

备份节点 检查点节点 或 (备份)

数据节点 数据节点 数据节点 数据节点 从

Page 20: Big data, big deal ms it168文库

HDFS 架构

20

主节点 备份节点

数据节点 数据节点 数据节点 数据节点 数据节点

(心跳, 负载均衡, 复制等等)

数据写到本地磁盘

命名空间备份

Page 21: Big data, big deal ms it168文库

数据节点 数据节点 数据节点 数据节点 数据节点

文件如何写到HDFS

21

主节点 备份节点

大文件 110010101001

010100101010

011001010100

101010010101

001100101010

010101001010

100110010101

001010100101

HDFS 客户端

{节点1, 节点2, 节点 3}

(基于 “复制因子”) (缺省3)

客户端把块直接传输到分配 的数据节点

{节点2, 节点4, 节点 5} {节点1, 节点3, 节点 5} {节点2, 节点3, 节点 4}

等等…

主节点告诉客户端把文件的每一块存储到哪里

Page 22: Big data, big deal ms it168文库

如何从HDFS上读取文件

22

主节点 备份节点

大文件 110010101001

010100101010

011001010100

101010010101

001100101010

010101001010

100110010101

001010100101

HDFS 客户端 返回文件块的位置

数据节点 数据节点 数据节点 数据节点 数据节点

从数据节点读取块

Page 23: Big data, big deal ms it168文库

故障 类型:

磁盘错误和故障

数据节点故障

Switch/Rack故障

主节点故障

数据中心故障

故障, 故障, 故障

• HDFS是专门针对经常发生的故障而设计的 (硬件和软件)

23

主节点

数据节点

Page 24: Big data, big deal ms it168文库

容错 (数据节点故障)

24

主节点 备份节点

数据节点 数据节点 数据节点 数据节点 数据节点

主节点侦测到数据节点故障 根据复制因子的配置块被自动复制到剩余的节点上

数据节点 数据节点 数据节点

Page 25: Big data, big deal ms it168文库

节点动态扩展

25

主节点 备份节点

数据节点 数据节点

主节点检测到新的数据节点 被加到群集里面

数据节点 数据节点 数据节点

块被重新分配

数据节点 数据节点 数据节点

Page 26: Big data, big deal ms it168文库

Hadoop MapReduce

• 分析存储在HDFS上的数据的编程框架(library and runtime)

• MapReduce 由两个函数组成:

• 用户仅需写Map和Reduce的函数 • MR框架 负责协调和执行 映射和合并简化的任务.

– 容错 – 可扩展

26

map() reduce() 映射 合并和简化

Page 27: Big data, big deal ms it168文库

MapReduce 101

基本上, 就是… 1. 把一个大的任务分成几个小任务

2. 对每一个小任务执行同一个函数

3. 合并所有执行结果

27

DoWork() DoWork() DoWork() …

输出

映射

简化

Page 28: Big data, big deal ms it168文库

MapReduce 层

HDFS层

hadoop-主节点

hadoop- 数据节点1

hadoop- 数据节点2

hadoop- 数据节点3

hadoop- 数据节点4

MapReduce组成

28

JobTracker

TaskTracker TaskTracker TaskTracker TaskTracker

临时数据存储到本地的文件系统

JobTracker控制监测TaskTracker 节点

TaskTrackers 存储临时数据

- 协调所有的M/R任务和事件 - 管理任务队列和调度 - 维护和控制TaskTrackers - 如果需要,移动/重启map/reduce任务 - 使用“检查点”来处理单点失败的故障

执行单个由JobTracker分配的映射和简化任务

数据节点 数据节点 数据节点 数据节点

主节点

MapReduce层

HDFS层

Page 29: Big data, big deal ms it168文库

Map 任务

MapReduce图解: 映射阶段

29

53705 $65

53705 $30

53705 $15

54235 $75

54235 $22

02115 $15

02115 $15

44313 $10

44313 $25

44313 $55

5 53705 $15

6 44313 $10

5 53705 $65

0 54235 $22

9 02115 $15

6 44313 $25

3 10025 $95

8 44313 $55

2 53705 $30

1 02115 $15

4 54235 $75

7 10025 $60

Mapper

Mapper

4 54235 $75

7 10025 $60

2 53705 $30

1 02115 $15

10025 $60

5 53705 $65

0 54235 $22

5 53705 $15

6 44313 $10

3 10025 $95

8 44313 $55

9 02115 $15

6 44313 $25

10025 $95

得到sales的总和并grouped by zipCode 数据

节点

3

数据

节点

2

数据

节点

1

在HDFS的Sales文件块

Group By

Group By

(custId, zipCode, amount)

每个简化任务有一个输

出结果

Page 30: Big data, big deal ms it168文库

Reducer

Reducer

简化任务

Reducer 简化阶段

53705 $65

54235 $75

54235 $22

10025 $95

44313 $55

10025 $60

Map

pe

r

53705 $30

53705 $15

02115 $15

02115 $15

44313 $10

44313 $25

Map

pe

r

53705 $65

53705 $30

53705 $15

44313 $10

44313 $25

10025 $95

44313 $55

10025 $60

54235 $75

54235 $22

02115 $15

02115 $15

Sort

Sort

Sort

53705 $65

53705 $30

53705 $15

44313 $10

44313 $25

44313 $55

10025 $95

10025 $60

54235 $75

54235 $22

02115 $15

02115 $15

SUM

SUM

SUM

10025 $155

44313 $90

53705 $110

54235 $97

02115 $30

Shu

ffle

Page 31: Big data, big deal ms it168文库

Hive和Pig

• 和 对于描叙性的SQL语言和Google有不同的结论

31

Facebook开发了像SQL语言一样的

产品叫 HIVE(蜂房)

Yahoo开发了稍微不同的程序语言叫

PIG(猪)

都是基于Hadoop MapReduce的语言

Hive和Pig的查询最终被编译成一序列的MapReduce的任务

Page 32: Big data, big deal ms it168文库

一个例子 考虑两个数据集:

32

Rankings

(

pageURL STRING,

pageRank INT,

avgDuration INT

);

UserVisits

(

sourceIP STRING,

destURL STRING

visitDate DATE,

adRevenue FLOAT,

.. // fields omitted

);

查询: 找到产生最多”adRevenue”的”sourceIP”的

地址以及它的平均的”pageRank”

Page 33: Big data, big deal ms it168文库

1

在MapReduce的做法

33

Page 34: Big data, big deal ms it168文库

如果用HiveQL SELECT sourceIP, totalRevenue, avgPageRank

FROM

SELECT sourceIP, sum(adRevenue) as totalRevenue,

avg(pageRank)as avgPageRank

FROM Rankings as R, Uservisits as UV

WHERE R.pageURL = UV.destURL and UV.visitDate

between Date (‘2000-01-15’) and Date (‘2000-01-22’) GROUP BY UV.sourceIP

ORDER BY totalRevenue DESC limit 1;

34

Page 35: Big data, big deal ms it168文库

Hive中的表

• 就像在关系型数据库里, 数据存储在表里 • 比SQL更丰富的字段类型

– 基本类型: ints, floats, strings, date – 复杂类型: associative arrays, lists, structs

例子:

35

CREATE Table Employees

(

Name string,

Salary integer,

Children List <Struct <firstName: string, DOB:date>>

)

Page 36: Big data, big deal ms it168文库

Hive数据存储 • 像关系型数据库一样, Hive表能被分区 • 数据文件例子:

Sales(custID, zipCode, date, amount) partitioned by state

36

custID zipCode …

201 12345 …

105 12345 …

933 12345 …

Alabama Alaska Wyoming

Sales HDFS目录

每一个state 一个HDFS文件

Create Table Sales(

custID INT,

zipCode STRING,

date DATE,

amount FLOAT)

Partitioned By

(state STRING)

Hive DDL:

custID zipCode …

13 54321 …

67 54321 …

45 74321 …

custID zipCode …

78 99221 …

345 99221 …

821 99221 …

Page 37: Big data, big deal ms it168文库

37

希望你还没有。。。

Page 38: Big data, big deal ms it168文库

总结

38

关系型数据库和Hadoop? (那一个才是未来?)

关系型数据库和Hadoop是用来满足不同的需求的

Page 39: Big data, big deal ms it168文库

39