码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Hadoop 之文件读取


    文章目录

    • Hadoop 之文件读取
      • Hadoop 文件读取
      • 网络拓扑

    Hadoop 之文件读取

    在这里插入图片描述

    Hadoop 文件读取

    Hadoop 对于文件的读取流程,是理解 HDFS 的关键之一

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IyTi55Aw-1630285652604)(/Users/craft/Pictures/typora_images/e2ad600f-da37-45e3-9221-baacd87c588f-0285619.jpg)]

    具体的步骤如下:

    1.客户端调用 FileSystem 对象的 open() 方法来打开待读取的文件(对于 HDFS 来说,就是 DistributedFileSystem)

    2.DistributedFileSystem 通过 RPC 来调用 namenode,确定文件起始块的位置,对于每个块,namenode 返回存有该块副本的 datanode 地址。这些 datanode 根据它们与客户端的距离来排序
    DistributedFileSystem 类返回一个 FSDataInputStream 对象给客户端以便读取数据(该类封装了 DFSInputStream,管理 datanode 和 namenode 的 I/O)

    3.客户端对 FSDataInputStream 调用 read() 方法,DFSInputStream 从它所存储的起始几个块的 datanode 中,选择最近的第一个块所在的 datanode 建立连接

    4.通过对数据流反复调用 read() 方法,将数据从 datanode 传输到客户端

    5.到达块的末端时,DFSInputStream 关闭与该 datanode 的链接,寻找下一个块的最佳 datanode

    6.客户端从流中读取数据时,块是按照打开 DFSInputStream 与 datanode 新建连接的顺序读取的。也会根据需要询问 namenode 来检索下一批数据块的 datanode 的位置。当客户端完成读取,就会对 FSDataInputStream 调用 close() 方法

    网络拓扑

    • 同一节点上的进程
    • 同一机架上的不同节点
    • 同一数据中心中不同机架上的节点
    • 不同数据中心中的节点

    假设有数据中心 d1 机架 r1 中的节点 n1,该节点可以表示为 /d1/r1/n2。利用这种标记,给出四中距离的描述

    • distance(/d1/r1/n1, /d1/r1/n1) = 0
    • distance(/d1/r1/n1, /d1/r1/n2) = 0
    • distance(/d1/r1/n1, /d1/r2/n3) = 0
    • distance(/d1/r1/n1, /d2/r3/n4) = 0
  • 相关阅读:
    从宏观到微观——泽攸科技ZEM系列台式扫描电子显微镜在岩石分析中的应用
    Elasticsearch:使用 LangChain 对话链和 OpenAI 的聊天机器人
    springcloud入门
    【自然语言处理】【向量表示】AugSBERT:改善用于成对句子评分任务的Bi-Encoders的数据增强方法
    Netty
    选择排序--java(详解)
    iOS 让界面元素的文字随着语言的更改而变化——本地化文字跟随
    『Linux - gcc / g++』c程序翻译过程
    如何使用API进行大规模数据收集和分析
    Spring Boot 3.0 已经就绪,您准备好了么?
  • 原文地址:https://blog.csdn.net/m0_67393593/article/details/126365681
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号