28
HDFS 原原原原原 刘刘刘 [email protected]

Hdfs introduction

Embed Size (px)

DESCRIPTION

baidu hdfs原理科普ppt

Citation preview

Page 1: Hdfs introduction

HDFS 原理与实现

刘景龙

[email protected]

Page 2: Hdfs introduction
Page 3: Hdfs introduction

为什么选择 Hadoop ?

• Need to process huge datasets on large clusters of computers

• Very expensive to build reliability into each application.

• Nodes fail every day– failure is expected, rather than exceptional.

– The number of nodes in a cluster is not constant.

• Need common infrastructure– Efficient, reliable, easy to use

– Open Source, Apache License

Page 4: Hdfs introduction

Hadoop history:

Page 5: Hdfs introduction

谁在用 Hadoop ?

Page 6: Hdfs introduction

百度 hadoop 集群现状

• Hadoop 集群规模 1w+台节点• 日平均处理数据为 8PB左右• 最大的 hadoop 集群规模: 2800 台

Page 7: Hdfs introduction

百度如何使用 hadoop

• 半线上 /线下日志挖掘• 网页相关的线下大规模挖掘计算,包括

linkbase的数据运算,索引库构建,网页库上的各种挖掘计算

• 大规模机器学习算法

Page 8: Hdfs introduction

HDFS 能做什么?

• 存储并管理 PB 级数据• 自动处理节点失效和负载均衡• 针对高吞吐进行优化

–数据本地化–机架感知

Page 9: Hdfs introduction

HDFS 不适合做什么?

• 存储小文件 ( 不建议使用 )

• 大量的随机读 ( 不建议使用 )

• 需要对文件的修改 ( 不支持 )

Page 10: Hdfs introduction

HDFS 架构:

10

b1

b2

b3 b1

b5

b3 b3

b5

b2

b4b5

b6b2

b3

b4

Namenode

Namespace Metadata & Journal

NamespaceBlock Map

Heartbeats & Block Reports

Block ID Block Locations

Datanodes

Block ID Data

Horizontally Scale IO and Storage

file Block id

Page 11: Hdfs introduction

HDFS : namenode 数据结构

Page 12: Hdfs introduction

HDFS : 读写流程

12

b1

b2

b3 b1

b5

b3 b3

b5

b2

b4b5

b6b2

b3

b4

Client Client

Namenode1 open

2 read2 write

1 create

write

write

Datanodes

NamespaceState

Block Map

End-to-end checksum

Page 13: Hdfs introduction

HDFS :副本分布

• 当前策略:

• 客户端从最近的副本进行读取

Page 14: Hdfs introduction

HDFS :容错

b1

b2

b3 b1

b5

b3 b3

b5

b2

b4b5

b6b2

b3

b4

Namenode

2. copy

3. blockReceived

1. replicate

Datanodes

Bad/lost block replica

Bad/lost block replica

Periodically check block checksums

NamespaceState

Block Map

Page 15: Hdfs introduction

HDFS :数据本地化

DataData data data data dataData data data data dataData data data data data

Data data data data dataData data data data dataData data data data data

Data data data data dataData data data data dataData data data data data

Data data data data dataData data data data dataData data data data data

ResultsData data data dataData data data dataData data data dataData data data dataData data data dataData data data dataData data data dataData data data dataData data data data

Hadoop Cluster

Block 1

Block 1

Block 2

Block 2

Block 2

Block 1

MAP

MAP

MAP

Reduce

Block 3

Block 3

Block 3

Page 16: Hdfs introduction

HDFS :接口

• 命令行• C++ 接口• Java 接口• POSIX 接口• Restful 接口

Page 17: Hdfs introduction

HDFS 在路上

HDFS Peta1.0 Peta2.0

Page 18: Hdfs introduction

可扩展性

Namenode

水平扩展 通过加机器解决文件数增加的问题

垂直扩展 内存存储热数据,冷数据磁盘存储

Page 19: Hdfs introduction

可扩展性: 水平扩展

Page 20: Hdfs introduction

可扩展性: 对象存储

Page 21: Hdfs introduction

可扩展性:数据结构

Page 22: Hdfs introduction

可扩展性:

• 文件数 10 亿• 节点数 1 万• 性能提高 10 倍

Page 23: Hdfs introduction

可用性:元数据结构

• 持久化元数据–操作日志( edit log )

• 记录文件创建,删除,修改文件属性等操作–Fsimage

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

• 非持久化元数据– block map

• Block -> datanodes

Page 24: Hdfs introduction

可用性

Page 25: Hdfs introduction

可用性:

• Fail over 时间最长不超过 5 分钟• 集群的在线升级

Page 26: Hdfs introduction

未来的工作方向

• 用户透明压缩存储• 资源隔离• 实时性支持• 百亿文件系统

。。。

Page 27: Hdfs introduction

求助热线:

• 邮件组:–[email protected]

• Hi 群:–1199411

• 文档园地:–http://wiki.babel.baidu.com/twiki/bin/view/Com

/Inf/Peta%E6%96%87%E6%A1%A3%E5%BB%BA%E8%AE%BE%E8%AE%A1%E5%88%92

Page 28: Hdfs introduction

Q & A

Thanks