Upload
baggioss
View
1.016
Download
2
Embed Size (px)
DESCRIPTION
baidu hdfs原理科普ppt
Citation preview
为什么选择 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
Hadoop history:
谁在用 Hadoop ?
百度 hadoop 集群现状
• Hadoop 集群规模 1w+台节点• 日平均处理数据为 8PB左右• 最大的 hadoop 集群规模: 2800 台
百度如何使用 hadoop
• 半线上 /线下日志挖掘• 网页相关的线下大规模挖掘计算,包括
linkbase的数据运算,索引库构建,网页库上的各种挖掘计算
• 大规模机器学习算法
HDFS 能做什么?
• 存储并管理 PB 级数据• 自动处理节点失效和负载均衡• 针对高吞吐进行优化
–数据本地化–机架感知
HDFS 不适合做什么?
• 存储小文件 ( 不建议使用 )
• 大量的随机读 ( 不建议使用 )
• 需要对文件的修改 ( 不支持 )
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
HDFS : namenode 数据结构
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
HDFS :副本分布
• 当前策略:
• 客户端从最近的副本进行读取
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
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
HDFS :接口
• 命令行• C++ 接口• Java 接口• POSIX 接口• Restful 接口
HDFS 在路上
HDFS Peta1.0 Peta2.0
可扩展性
Namenode
水平扩展 通过加机器解决文件数增加的问题
垂直扩展 内存存储热数据,冷数据磁盘存储
可扩展性: 水平扩展
可扩展性: 对象存储
可扩展性:数据结构
可扩展性:
• 文件数 10 亿• 节点数 1 万• 性能提高 10 倍
可用性:元数据结构
• 持久化元数据–操作日志( edit log )
• 记录文件创建,删除,修改文件属性等操作–Fsimage
• 包含完整的命名空间• File -> Block 的映射关系• 文件的属性( ACL, quota, 修改时间等)
• 非持久化元数据– block map
• Block -> datanodes
可用性
可用性:
• Fail over 时间最长不超过 5 分钟• 集群的在线升级
未来的工作方向
• 用户透明压缩存储• 资源隔离• 实时性支持• 百亿文件系统
。。。
求助热线:
• 邮件组:–[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
Q & A
Thanks