初识Hadoop通信方式

在HDFS系统中,主节点、从节点和客户端三者是如何实现通信交流的?

如何区分这三者的关系

在集群里任何节点都执行hadoop fs -ls / 等hadoop指令,你都是在主节点namenode或者识从节点datanode。否则就是客户端,客户端没有包括在Hadoop集群之中。

 

三者具体的通讯方式

client和namenode之间是通过rpc通信;
datanode和namenode之间是通过rpc通信;
client和datanode之间是通过简单的socket通信;

 

到底是如何实现通信

  1. 1.NameNode可以看作是分布式文件系统中的管理者,主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等。NameNode会将文件系统的Meta-data存储在内存中,这些信息主要包括了文件信息、每一个文件对应的文件块的信息和每一个文件块在DataNode的信息等。
  2. 2.DataNode是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data,同时周期性地将所有存在的Block信息发送给NameNode。
  3. 3.Client就是需要获取分布式文件系统文件的应用程序。

文件写入
Client向NameNode发起文件写入的请求。
NameNode根据文件大小和文件块配置情况,返回给Client应该向哪一个DataNode写入数据。
Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

 

文件读取
Client向NameNode发起文件读取的请求。
NameNode返回文件存储的DataNode的信息。
Client读取文件信息。

注意,在上面的过程中,NameNode自身并没有进行任何关于实际数据的读写操作,只是将数据的信息(包括块的位置、块的大小)进行保存和展示。

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

Title - Artist
0:00