big data, big deal ms it168文库

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

Upload: providence-health-services

Post on 02-Jul-2015

178 views

Category:

Documents


7 download

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