HDFS的原理

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

写操作:

读操作:

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

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

HA切换流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值