热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

HDFS写入流程(文字版)

客户端发送请求,连接NameNode,请求写入操作.NameNode接收到请求后,判断用户有无写入权限,如果没有,报错.如果有写入权限,判断写入路径下有无这个文件,如果有,报错,如
  1. 客户端发送请求, 连接NameNode, 请求写入操作.
  2. NameNode接收到请求后, 判断用户有无写入权限, 如果没有, 报错.
  3. 如果有写入权限, 判断写入路径下有无这个文件, 如果有, 报错, 如果没有, 通知客户端可以写入.
  4. 客户端接收到可以写入的信息后, 开始对文件进行切分, 行程多个block块.
  5. 客户端请求NameNode, 第一个block应该存储在哪些DataNode中.
  6. NameNode根据机架感知, 网络拓扑图关系, 副本机制, 来寻找适合的DataNode, 形成地址列表, 然后将这些地址列表返回给客户端.
  7. 客户端从地址列表中, 拿到第一个DataNode地址与之连接.
  8. 当第一个DataNode连接成功后, 让第一个DataNode连接第二个DataNode地址, 然后第二个DataNode连接第三个DataNode地址, 形成一个通信管道.
  9. 客户端开始进行写入数据, 数据将以数据包(64K)的形式来发送数据, 当第一个DataNode接收到数据后, 然后将数据发送给第二个DataNode, 第二个DataNode接收到以后发送给第三个DataNode.
  10. 当第一个DataNode接收到数据后, 会建立一个应答响应队列, 每个节点接收到数据后, 都会向应答队列反向报告, 最终所以都报告完后, 将应答队列返回客户端.
    1.  客户端 -> DataNode1 -> DataNode2 -> DataNode3 (传输)
    2.  DataNode3 -> DataNode2 -> DataNode1 -> 客户端 (应答响应)
  11. 不断的发送, 不断的应答响应, 直到第一个block发送完成, 重新向NameNode请求第二个block的存储地址列表, 然后不断的重复发送,应答响应操作, 直到所有block传输完毕.

推荐阅读
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
  • 深入解析Hadoop的核心组件与工作原理
    本文详细介绍了Hadoop的三大核心组件:分布式文件系统HDFS、资源管理器YARN和分布式计算框架MapReduce。通过分析这些组件的工作机制,帮助读者更好地理解Hadoop的架构及其在大数据处理中的应用。 ... [详细]
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 从码农到创业者:我的职业转型之路
    在观察了众多同行的职业发展后,我决定分享自己的故事。本文探讨了为什么大多数程序员难以成为架构师,并阐述了我从一家外企离职后投身创业的心路历程。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有