<ignore_js_op>

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

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

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

----------------------------------------------------------------------------------------------------------------------------------------------------------------

通信方式介绍:

在hadoop系统中,master/slaves/client的对应关系是:
master---namenode;
slaves---datanode;
client---dfsclient;
那究竟是通过什么样的方式进行通信的呢,在这里从大体介绍一下:
简单地讲:
client和namenode之间是通过rpc通信;
datanode和namenode之间是通过rpc通信;
client和datanode之间是通过简单的socket通信。
随便拔一下DFSClient的代码,可以看到它有一个成员变量public final ClientProtocolnamenode;
而再拔一下DataNode的代码,可以看到它也有一个成员变量public DatanodeProtocolnamenode

文章转自:http://www.aboutyun.com/thread-6794-1-1.html

转载于:https://www.cnblogs.com/likehua/p/4161428.html

hadoop中NameNode、DataNode和Client三者之间协作关系及通信方式介绍相关推荐

  1. 【Linux网络编程】TCP网络编程中connect listen和accept三者之间的关系

    00. 目录 文章目录 00. 目录 01. TCP服务端和客户端流程 02. connect函数 03. listen函数 04. 三次握手 05. accept函数 06. 附录 01. TCP服 ...

  2. anaconda中的python如何进行关联分析_浅析python,PyCharm,Anaconda三者之间的关系

    一.它们是什么? Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C,Java,C++等,一种编程语言. 2.Anaconda Anaconda指的是一个开源的Pytho ...

  3. 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系

    转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...

  4. 程序中try、throw、catch三者之间的关系

    c++程序中,采用一种专门的结构化处理逻辑的异常处理机制. 1.try语句 try语句块的作用是启动异常处理机制,检测try语句块中程序语句执行时可能出现的异常. try语句块总是与catch一同出现 ...

  5. Hadoop中Namenode单点故障的解决方案

    Hadoop中Namenode单点故障的解决方案 需求: 实现namenode元数据的备份,解决namenode单点宕机导致集群不可用的问题. 方案描述: 当namenode所在服务器宕机的时候,我们 ...

  6. 甲方、乙方、监理三者之间的关系及其在项目管理过程中的若干事项

    1.甲方.乙方.监理三者之间的关系 甲方是工程项目的投资单位和受方单位,乙方是工程项目的承建单位和供方单位,监理是工程项目的监管单位和第三方单位.广义方面来讲,监理也属于乙方的范畴,是服务的提供者.从 ...

  7. 初学SpringCloud:探讨一下为什么要使用微服务?,为什么要使用服务注册中心?怎样理解服务注册中心,服务提供者,服务调用者三者之间的关系?

    目录 1.本篇博客的背景 2.为什么要使用微服务? 3.为什么要使用服务注册中心 4.怎样理解服务注册中心,服务提供者,服务调用者三者之间的关系? 1.本篇博客的背景 我目前正在学习微服务的一些知识, ...

  8. PHP-FPM,Nginx,FastCGI 三者之间的关系

    2019独角兽企业重金招聘Python工程师标准>>> 本文介绍 PHP-FPM,Nginx,FastCGI 三者之间的关系,以及 Nginx 反向代理和负载均衡的配置. PHP-F ...

  9. python和pycharm之间的关系_浅析python,PyCharm,Anaconda三者之间的关系

    一.它们是什么? 1.python Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C,Java,C++等,一种编程语言. 2.Anaconda Anaconda指的是一 ...

最新文章

  1. 企业级java b2bc商城系统开源源码二次开发(二十一)springboot集成JMS
  2. ec20 复位命令_《EC20 — AT指令》
  3. mysql b-a全局索引_MySQL中B+树索引的使用
  4. php判断ie版本,PHP获取浏览器版本信息
  5. iOS quartzCore学习之UIBezierPath 详解
  6. vue如何生成公钥私钥_百行Python代码演示1私钥生成多公链公钥原理。|区块链财富指北私钥篇(2)...
  7. java 单元测试assert_java – 使用assertTrue与其他人进行单元测试
  8. ios不能保存png_ios转一加8t使用体验随用随更新
  9. 西安西北大学计算机研究生学费,关于西北大学研究生学费及住宿的解答
  10. android 调出键盘表情_Android高仿微信表情输入与键盘输入详解
  11. 好玩的微信互动小游戏有哪些?微信小程序游戏倾情推荐?
  12. 线程有哪些状态?创建、就绪、运行、阻塞和死亡
  13. AI2022:如何在 Illustrator 中创建色板?
  14. 【tensorflow学习之路】如何使用gpu进行运算
  15. 「UG/NX」BlockUI 字符串String
  16. 抖音被限流怎么办,抖音被限流了解决办法介绍:国仁网络资讯
  17. 汉诺塔完整代码及分析
  18. GraphicsView学习-基本图元使用(2)
  19. Windows下安装Python pyramid,并运行一个pyramid的Helloworld项目
  20. SQL修改视图中列名和字段长度

热门文章

  1. ubuntu pdf转jpg或txt
  2. 第二次作业(软件工作量的估记方法)
  3. iOS ASIHttpRequest 封装
  4. 虚拟化--027 VMware vCenter Server Heartbeat 6.5安装教程
  5. 14.索引数组初始化
  6. Windows To Go:Windows 8住进U盘里
  7. Django使用心得(四)
  8. Linux系统下基本命令
  9. #Hive报错 WritableStringObjectInspector cannot be cast to org.apache.hadoop.hive.serde2.objectinspect
  10. Nginx三部曲之一【配置文件详解】