HDFS原理与实现<br />刘景龙<br />liujinglong@baidu.com<br />
概要<br />Peta1.0<br />HDFS<br />Peta2.0<br />
什么是Hadoop?<br />
什么是Hadoop?<br />
什么是HDFS?<br />Hadoop Distributed File System<br />Hadoop Distributed File System (HDFS) is the primary storage system used...
谁在用Hadoop?<br />
百度如何使用hadoop<br />半线上/线下日志挖掘<br />网页相关的线下大规模挖掘计算,包括linkbase的数据运算,索引库构建,网页库上的各种挖掘计算<br />大规模机器学习算法<br />
百度hadoop集群现状<br />Hadoop集群规模1w+台节点<br />日平均处理数据为6PB左右<br />最大的hadoop集群规模:2300台<br />
HDFS能做什么?<br />存储并管理PB级数据<br />处理非结构化数据<br />注重数据处理的吞吐量(latency不敏感)<br /><ul><li>应用模式为:write-once-read-many存取模式</li></li><...
设计目标<br />假设:<br />节点失效是常态<br />理想:<br /> 1. 任何一个节点失效,不影响HDFS服务<br />2. HDFS可以自动完成副本的复制<br />
设计目标<br />假设:<br />write-once-read-many存取模式<br />不支持文件并发写入<br />不支持文件修改<br />
HDFS主要组件<br />
HDFS主要组件的功能<br />
系统架构<br />
Example:HDFS如何写文件?<br />Create file <br />Close file<br />Write packet<br />Send ack<br />Write packet<br />Send ack<br />...
HDFS副本放置策略<br />
Example:HDFS如何读文件?<br />Open file<br />Get block location<br />Close file<br />Read block<br />
节点失效是常态<br />DataNode中的磁盘挂了怎么办?<br />DataNode所在机器挂了怎么办?<br />NameNode挂了怎么办?<br />Client挂了怎么办?<br />
DataNode的磁盘挂了怎么办?<br />DataNode正常服务<br />坏掉的磁盘上的数据尽快通知NameNode<br />
DataNode所在机器挂了怎么办?<br />问:NameNode怎么知道DataNode挂掉了?<br />答:datanode每3秒钟向namenode发送心跳,如果10分钟datanode没有向namenode发送心跳,则namenod...
NameNode挂了怎么办?<br />持久化元数据<br />操作日志(edit log)<br />记录文件创建,删除,修改文件属性等操作<br />Fsimage<br />包含完整的命名空间<br />File -> Block的映射关...
NameNode挂了怎么办?<br />Secondary NameNode<br />将NameNode的fsimage与edit log从Namenode复制到临时目录<br />将fsimage同edit log合并,并产生新的fsima...
Client挂了怎么办?<br />问: Client 所在机器挂了有什么影响?<br />答:一致性问题<br />Lease recovery<br />Create file,<br />get lease <br />Crash<br ...
write-once-read-many<br />读写流程<br />不支持并发写入<br />通过lease机制<br />不支持对文件修改<br />
小结<br />什么是hadoop<br />hdfs是用来做什么的<br />hdfs的主要假设是什么?<br />hdfs针对假设做了些什么?<br />
思考题<br />现有hdfs架构上存在的问题是什么?<br />
HDFS -> Peta1.0<br />可扩展性<br />
HDFS -> Peta1.0<br />可扩展性<br />
HDFS -> Peta1.0<br />可扩展性<br />Bung<br />
可扩展性<br />问题:<br />集群规模扩大:1000 -> 5000/10000<br />数据规模的增长: 1亿-> 5亿/10亿<br />单点的Master/NameNode内存,所有的元数据都存储于NameNode的内存<br ...
可扩展性<br />设计目标:<br />文件支撑到1万节点、10亿文件的集群规模<br />
可扩展性<br />
可扩展性<br />Namespace<br />/home/test/1.txt  -> pool : 10 file id: 1000<br />/home/test/2.txt  -> pool : 84 file id: 3000<br...
可扩展性<br />
Peta1.0 -> Peta2.0<br />可用性<br />Namenode单点失效<br />crash<br />
可用性<br />设计目标:<br />最差情况下,5分钟完成fail over<br />
可用性<br />
后续工作<br />
I want to try ….<br />
Contact us<br />Dpf-help@baidu.com<br />百度群: 1199411<br />百度hadoop平台:<br />      dpfhelp.dmop.baidu.com<br />
Q & A<br />Thanks<br />
Hdfs
Upcoming SlideShare
Loading in...5
×

Hdfs

1,288

Published on

introducation of hdfs

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,288
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
51
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Hdfs

  1. 1. HDFS原理与实现<br />刘景龙<br />liujinglong@baidu.com<br />
  2. 2. 概要<br />Peta1.0<br />HDFS<br />Peta2.0<br />
  3. 3. 什么是Hadoop?<br />
  4. 4. 什么是Hadoop?<br />
  5. 5. 什么是HDFS?<br />Hadoop Distributed File System<br />Hadoop Distributed File System (HDFS) is the primary storage system used by Hadoop applications. HDFS creates multiple replicasof data blocks and distributes them on compute nodes throughout a cluster to enable reliable, extremely rapid computations.<br />
  6. 6. 谁在用Hadoop?<br />
  7. 7. 百度如何使用hadoop<br />半线上/线下日志挖掘<br />网页相关的线下大规模挖掘计算,包括linkbase的数据运算,索引库构建,网页库上的各种挖掘计算<br />大规模机器学习算法<br />
  8. 8. 百度hadoop集群现状<br />Hadoop集群规模1w+台节点<br />日平均处理数据为6PB左右<br />最大的hadoop集群规模:2300台<br />
  9. 9. HDFS能做什么?<br />存储并管理PB级数据<br />处理非结构化数据<br />注重数据处理的吞吐量(latency不敏感)<br /><ul><li>应用模式为:write-once-read-many存取模式</li></li></ul><li>HDFS不适合做什么?<br />存储小文件 (不建议使用)<br />大量的随机读 (不建议使用)<br />需要对文件的修改 (不支持)<br />
  10. 10. 设计目标<br />假设:<br />节点失效是常态<br />理想:<br /> 1. 任何一个节点失效,不影响HDFS服务<br />2. HDFS可以自动完成副本的复制<br />
  11. 11. 设计目标<br />假设:<br />write-once-read-many存取模式<br />不支持文件并发写入<br />不支持文件修改<br />
  12. 12. HDFS主要组件<br />
  13. 13. HDFS主要组件的功能<br />
  14. 14. 系统架构<br />
  15. 15. Example:HDFS如何写文件?<br />Create file <br />Close file<br />Write packet<br />Send ack<br />Write packet<br />Send ack<br />Write packet<br />Send ack<br />
  16. 16. HDFS副本放置策略<br />
  17. 17. Example:HDFS如何读文件?<br />Open file<br />Get block location<br />Close file<br />Read block<br />
  18. 18. 节点失效是常态<br />DataNode中的磁盘挂了怎么办?<br />DataNode所在机器挂了怎么办?<br />NameNode挂了怎么办?<br />Client挂了怎么办?<br />
  19. 19. DataNode的磁盘挂了怎么办?<br />DataNode正常服务<br />坏掉的磁盘上的数据尽快通知NameNode<br />
  20. 20. DataNode所在机器挂了怎么办?<br />问:NameNode怎么知道DataNode挂掉了?<br />答:datanode每3秒钟向namenode发送心跳,如果10分钟datanode没有向namenode发送心跳,则namenode认为该datanode已经dead,namenode将取出该datanode上对应的block,对其进行复制。<br />
  21. 21. NameNode挂了怎么办?<br />持久化元数据<br />操作日志(edit log)<br />记录文件创建,删除,修改文件属性等操作<br />Fsimage<br />包含完整的命名空间<br />File -> Block的映射关系<br />文件的属性(ACL, quota, 修改时间等)<br />
  22. 22. NameNode挂了怎么办?<br />Secondary NameNode<br />将NameNode的fsimage与edit log从Namenode复制到临时目录<br />将fsimage同edit log合并,并产生新的fsimage<br />将产生的新的fsimage上传给NameNode<br />清除NameNode中的edit log<br />[注]: Secondary NameNode仅仅对NameNode中元数据提供冷备方案<br />
  23. 23. Client挂了怎么办?<br />问: Client 所在机器挂了有什么影响?<br />答:一致性问题<br />Lease recovery<br />Create file,<br />get lease <br />Crash<br />Renew lease<br />
  24. 24. write-once-read-many<br />读写流程<br />不支持并发写入<br />通过lease机制<br />不支持对文件修改<br />
  25. 25. 小结<br />什么是hadoop<br />hdfs是用来做什么的<br />hdfs的主要假设是什么?<br />hdfs针对假设做了些什么?<br />
  26. 26. 思考题<br />现有hdfs架构上存在的问题是什么?<br />
  27. 27. HDFS -> Peta1.0<br />可扩展性<br />
  28. 28. HDFS -> Peta1.0<br />可扩展性<br />
  29. 29. HDFS -> Peta1.0<br />可扩展性<br />Bung<br />
  30. 30. 可扩展性<br />问题:<br />集群规模扩大:1000 -> 5000/10000<br />数据规模的增长: 1亿-> 5亿/10亿<br />单点的Master/NameNode内存,所有的元数据都存储于NameNode的内存<br />负载,集群规模扩大后,单点的NameNode请求压力也会同时增大<br />
  31. 31. 可扩展性<br />设计目标:<br />文件支撑到1万节点、10亿文件的集群规模<br />
  32. 32. 可扩展性<br />
  33. 33. 可扩展性<br />Namespace<br />/home/test/1.txt -> pool : 10 file id: 1000<br />/home/test/2.txt -> pool : 84 file id: 3000<br />fms1<br />fms2<br />fms3<br />/10-1000 r2 {1, 3}<br />…<br />/84-3000 r3 {2, 4, 5}<br />…<br />
  34. 34. 可扩展性<br />
  35. 35. Peta1.0 -> Peta2.0<br />可用性<br />Namenode单点失效<br />crash<br />
  36. 36. 可用性<br />设计目标:<br />最差情况下,5分钟完成fail over<br />
  37. 37. 可用性<br />
  38. 38. 后续工作<br />
  39. 39. I want to try ….<br />
  40. 40. Contact us<br />Dpf-help@baidu.com<br />百度群: 1199411<br />百度hadoop平台:<br /> dpfhelp.dmop.baidu.com<br />
  41. 41. Q & A<br />Thanks<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×