HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。

HDFS上的角色:

NameNode:是Master节点,管理数据块的映射,数据信息包括fsimage和edits。

SecondaryNameNode:分担NameNode的工作,是NameNode的冷备份,合并fsimage和edits然后发给namenode

DataNode:Slave节点,负责存储客户端提交上来的数据块

fsimage:hdfs的元数据镜像文件,文件系统的目录树

edits:元数据的操作日志,主要是文件系统的修改的操作日志

HDFS中用到的基础知识:

Java动态代理:在程序运行时动态的对一些东西做代理,代理在原来的方法之上做其他的事情

JavaNIO:(Java non-blocking IO)非阻塞IO,NIO是面向缓冲区的,JavaIO是面向流的,是阻塞的;JavaNIO是面向缓冲区的,需要将IO缓存到一个缓冲区;有三个核心组件Channel(通道)、Buffer(缓冲区)、Selector(运行单线程处理多个Channel);

Protobuf框架:结构数据序列化方法,用于通信协议、数据存储等;

org.apache.hadoop.hdfs.protobuf

org.apache.hadoop.hdfs.server.protobuf

两个类主要定义了Hadoop RPC的接口;

ClientProtocol:定义了由客户端发起的,由namenode相应的操作;

ClientDataNodeProtocol:定义了Client与DataNode之间的接口

DataNodeProtocol:有客户端发起调用的接口

HadoopRPC:
    基于IPC(进程间通信)模型实现一套高效的轻量级的RPC框架;
        采用的技术点有:java动态代理,javaNIO,protocol等基础技术
    RPC:是一种通过网络调用远程计算机的服务的协议
        包括:通信模块:(基于TCP/UDP可以是同步的也可以是异步的)
              客户端Stub程序:
              服务端Stub程序:
              请求程序:
              服务程序:
    org.apache.hadoop.ipc.Client
    org.apache.hadoop.ipc.Server

写操作:

HDFS的原理

读操作:

HDFS的原理

DataNode启动、心跳以及执行名字节点指令流程

HDFS的原理

DataNode启动后与NameNode的交互主要包括三个部分:1:握手,2:注册,3:块汇报以及缓存汇报

HA切换流程

HDFS的原理

相关文章: