教程使用版本: hadoop-2.8.1.tar.gz zookeeper-3.4.10.tar.gz Linux: Centos 7 x64 (CentOS-7-x86_64-DVD-1708)
NameNode管理元数据的机制
当NameNode收到更新元数据请求
首先更新内存中元数据信息
记录操作日志 edits
定期合并(checkpoint) edits 到 fileimage
客户端向HDFS写数据的流程
HDFS集群分为两大角色:
NameNode DataNode (Secondary NameNode)
NameNode负责管理集群的元数据
DataNode负责管理用户的文件数据块
文件会按照固定的大小(blocksize)切成若干块后分布式存储在若干台datanode上
每一个文件块可以有多个副本,并存放在不同的datanode上
HDFS读数据流程
- 客户端向NameNode请求下载文件A
- NameNode从元数据中读取A文件所在位置,副本数量 返回给客户端
- 客户端向最近DataNode请求下载block1 建立下载通道
- 开始传输数据
- 传输完成后客户端找第二个block数据所在DataNode中的位置
- 最后所有块在客户端合并
OOAD与UML
OOAD(Object Oriented Analysis and Design) 面向对象的分析与设计
OOA 分析阶段
建立针对业务问题域的清晰视图
列出系统必须要完成的核心人物
针对问题域建立公共词汇表
列出针对此问题域的最佳解决方案
核心问题:What to do ? 要做什么?