Hadoop之 hdfs 系统

一、NameNode维护着2张表:

1.文件系统的目录结构,以及元数据信息

2.文件与数据块列表的对应关系

存放在fsimage中,在运行的时候加载到内存中的。

操作日志写到edits中

 

二、DataNode

使用block形式存储。在hadoop2中,默认的大小是128MB。

使用副本形式保存数据的安全,默认的数量是3个。

 

使用shell访问hdfs

bin/hdfs dfs –xxx

 

三、RPC(remote procedure call)

远程过程调用要有一个服务端(对外暴露方法供调用者使用),要有一个客户端(主动调用方法)。

 

问题1:简述HDFS

答:1.HDFS是hadoop 的文件存储系统分布式存储,采用总分模式,在业界有一个2级映射的方式,1数据与分区的映射,2.分区与机器的映射。

2.数据存储是总分结构,有专门存储元数据的namenode ,有专门存储数据的datanode。数据在datanode中是以数据块block的形式存储的。数据与block 之间是一种映射,block 与节点datanode 之间是一种映射,这2个映射在namenode 中存储着,同事,namenode 还接受用户的请求,进行读或写操作的时候,虽然经过namenode 但最终要通过datenode读取。

3.Datanode有很多节点,这样才能扩大数据的存储。在生产环境中,一般通过副本方式保证数据的安全,工业上一般副本数量为3.

 

问题2:RPC 理解

RPC是一个远程过程调用,remote procedure call .在hadoop 中是指不同进程之间的通信,不同虚拟机之间的调用,通过代理机制实现,是一种CS的结构 ,C作为调用端发送请求调用服务端的接口。接口在服务端实现。当服务端接收到请求,然后去找相应的函数,然后将处理结果返回给客户端,而客户端一直挂起等待服务端的结果。 服务端一直等待状态。

 

RPC在hadoop 中的体现:

Hadoop 整体体系是建立在rpc基础之上的。 比如hdfs中,有客户端,服务端,

1 客户端(用户代码)与namenode 之间通过rpc通讯,客户端通讯所依赖的接口是clientprotocol ,通常调用一些方法,写,移动,列表等方法。

2.namenode与datanode 之间也是一种rpc机制,接口是datanodeprotocol ; namenode 作为客户端不同的发送心跳请求指的是datanodeprotocol中的heartbeat 方法,在这个方法中datanode把自己的状态信息(使用以及剩余信息)发送给namenode。

3. datanode 之间通讯也是rpc机制。

 

原文地址:https://www.cnblogs.com/chaoren399/p/4696631.html