Hadoop HDFS 中块的概念

2023-12-24

我对 Hadoop 中的块有一些疑问。我读到 Hadoop 使用 HDFS 来创建特定大小的块。

第一个问题这些块是否物理存在于普通文件系统(如 NTFS)的硬盘上,即我们可以看到托管文件系统(NTFS)上的块还是只能使用 hadoop 命令看到它?

第二个问题hadoop 是否在运行任务之前创建块,即每当有文件时块就从一开始就存在,或者 hadoop 仅在运行任务时创建块。

第三个问题块是否会在分割之前确定并创建(即 InputFormat 类的 getSplits 方法),无论分割数量如何,还是根据分割数在分割之后确定和创建?

第四个问题运行任务之前和之后的块是否相同或者取决于配置,是否有两种类型的块,一种用于存储文件,一种用于对文件进行分组并通过网络将它们发送到数据节点以执行任务?


1.这些块是否物理存在于普通文件系统(如 NTFS)的硬盘上,即我们可以看到托管文件系统(NTFS)上的块还是只能使用 hadoop 命令看到它们?

是的。块是物理存在的。您可以使用类似的命令hadoop fsck /path/to/file -files -blocks

有关查看块的命令,请参阅以下 SE 问题:

查看hadoop中文件的块数 https://stackoverflow.com/questions/11168427/viewing-the-number-of-blocks-for-a-file-in-hadoop

2.hadoop是否在运行任务之前创建块,即每当有文件时块就从一开始就存在,或者hadoop仅在运行任务时创建块。

Hadoop = 分布式存储(HDFS) + 分布式处理 (MapReduce 和 Yarn).

MapReduce 作业处理输入拆分 => 输入拆分是从 Datanode 中的数据块创建的。数据块是在文件的写操作期间创建的。如果您在现有文件上运行作业,则在作业之前预先创建数据块,并在 Map 操作期间创建 InputSplits。您可以将数据块视为物理实体,将InputSplit视为逻辑实体。 Mapreduce 作业不会更改输入数据块。 Reducer 生成输出数据作为新的数据块。

Mapper处理输入拆分并将输出发送到Reducer job.

3.第三个问题无论分割次数如何,块是否会在分割之前(即InputFormat类的getSplits方法)确定并创建,还是根据分割数在分割之后确定和创建?

输入已可用于物理 DFS 块。 MapReduce 作业在 InputSplit 中工作。 Blocks 和 InputSplit 可能相同也可能不同。 Block是物理实体,InputSplit是逻辑实体。请参阅下面的 SE 问题了解更多详细信息:

Hadoop 如何执行输入拆分? https://stackoverflow.com/questions/2831507/how-does-hadoop-perform-input-splits/34247868#34247868

4.第四个问题运行任务之前和之后的块是否相同或者取决于配置,是否有两种类型的块,一种用于存储文件,一种用于对文件进行分组并通过网络将它们发送到数据节点以执行任务任务?

映射器输入:输入块已存在。映射过程在输入块/分割上启动,这些块/分割在映射器作业开始之前已存储在 HDFS 中。

映射器输出:不存储在 HDFS 中,并且将复制因子 X 大于 1 的中间结果存储在 HDFS 上没有意义。

减速机输出:Reducer 输出存储在 HDFS 中。块的数量将取决于减速器输出数据的大小。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop HDFS 中块的概念 的相关文章

随机推荐

  • 我怎样才能在 vs 2010 安装项目中为两个不同的发行版本拥有不同的属性等?

    我想要的是我的解决方案中只有一个安装项目 并且我希望能够在一台计算机上同时安装 release1 和 release2 版本 如版本 debug release1 release2 因此 release1 版本需要自己的程序文件夹 产品代码
  • 抓取重定向的页面

    我尝试抓取一个简单的页面 需要欢呼和请求 https www ishares com uk individual en products 251824 https www ishares com uk individual en produ
  • 当 spring.profiles.active 设置多个 Spring 环境配置文件时,优先顺序是什么

    我只是想知道是什么优先顺序是指定多个 Spring 活动配置文件时的顺序 说我想要default配置文件处于活动状态 但dev当有多个相同的元素 例如 bean 可供选择但具有不同的配置文件时 配置文件将覆盖它 比如说我有两个Propert
  • 在 MongoDb 中更新插入字典

    据我所知 mongodb 知道Dictionary作为一个对象 它不能进行任何与数组相关的操作 我更改了序列化并尝试了各种类型的字典序列化 但没有机会 所以我将我的字段 字典 全部 加载到内存中 更新它并将其设置回 mongodb 有什么办
  • setPage() 函数的页码错误:0

    我的 tcpdf 代码是 file to show test details pdf view test details tpl test details smarty gt fetch file to show test details
  • Maven 和 Jenkins - 'mvn' 不被识别为内部或外部命令,

    我正在尝试学习 Jenkins 和 Maven 到目前为止我所做的 安装Maven并设置M2 and M2 HOME作为环境变量 从 eclipse 创建一个简单的 Maven 项目 gt 创建了一个 bat我要移动到的目录中的文件pom
  • 在 React Native WebView 中启用弹出窗口

    我有一个 React Native 应用程序 使用 React Native 0 43 3 它使用 WebView 来显示用于网上银行的网页 该网站加载一个带有登录页面的弹出窗口 对于 ReactNative WebView 此弹出窗口不会
  • 无法从 X509Store 读取 CurrentUser 证书

    我正在开发 ASP NET 4 0 Web 应用程序 我想从 X509Store 读取当前用户证书 读取 LocalMachine 证书工作正常 但如果我将 StoreLocation 设置为 CurrentUser 它会给我一个空集合 下
  • 如何控制何时在 iOS 中提示用户推送通知权限

    我使用 Swift 和 Xcode 6 以及 Parse 框架来处理服务 为 iPhone 构建了一个应用程序 在遵循有关如何设置推送通知的 Parse 教程时 说明建议我将推送通知放在 App Delegate 文件中 这是我添加到应用程
  • 从 PowerShell 使用 .NET 库

    我有一个用于操作数据库的 PowerShell 管理单元 管理单元本身只是在单独的 NET DLL 中实现的主库的包装 所有这些都用 C 编写 我已使用 installutil exe 向 GAC 注册了管理单元和实现 DLL 虽然该管理单
  • 如何使用 robolectric 对 Android 音频录制应用程序进行单元测试

    我只是想知道是否可以使用 Robolectric 框架对 Android 录音机应用程序进行单元测试 据我所知 Robolectric 没有使用模拟器或真实设备进行测试 但是在录音应用程序中 我需要测试音频是否被录制 它是否存储在SD卡上的
  • Spotify Embed iFrame 仅播放歌曲预览

    在我的网站上 即使我登录了 Spotify Premium 我似乎也只能在 Chrome 和 Safari 中播放播放列表中的曲目预览 不过 完整曲目可以在 Firefox 中播放 为什么会出现这种情况呢 这是我的网站 www studif
  • 全屏模式下的 JInternalFrame

    我打算在全屏模式下使用 JInternalFrame 作为模态 JDialog 但是 当前在调用它时并未显示它 我需要将其添加到某个容器中吗 我尝试将其添加到 JOptionPane showInternalMessage 但由于我想让对话
  • 即席查询、存储过程、动态 SQL [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PHP - 简单 XML - 嵌套层次结构

    我一直在使用 PHP 的简单 XML 函数来处理 XML 文件 下面的代码适用于简单的 XML 层次结构 xml simplexml load file test xml echo xml gt getName br foreach xml
  • 从 pandas 数据框中减去两列并将结果存储在第三列中[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个数据框 df 有 3 列 我想执行减法如下 df available df recommended df man
  • 使用 class.forname 但想要自动装配目标类的成员

    我有这个需求 我的框架的方式是从配置文件中以字符串形式读取类名 我想使用该类中的方法 显而易见的解决方案是使用反射 我已经使用了反射并能够调用我想要的方法 但问题是目标类内的变量没有自动装配 我知道我不会让 spring 通过使用反射来自动
  • 如何将 system() 调用结果的每一行写入 Vimscript 中的列表?

    我想使用 Vimscript 循环遍历目录中的文件 阅读usr 41 txt四处搜寻后 我能想到的最好的办法就是let dir contents system ls 但是由于system 没有返回列表 我无法循环它 有没有办法可以将系统调用
  • ActiveWorkbook.Connections("x").Refresh 完成时执行的代码

    从外部源选择数据我有一个数据连接 它使用select使用 vba 代码从 SQL 服务器查询到 Excel 工作表 如下所示 With ActiveWorkbook Connections x OLEDBConnection Backgro
  • Hadoop HDFS 中块的概念

    我对 Hadoop 中的块有一些疑问 我读到 Hadoop 使用 HDFS 来创建特定大小的块 第一个问题这些块是否物理存在于普通文件系统 如 NTFS 的硬盘上 即我们可以看到托管文件系统 NTFS 上的块还是只能使用 hadoop 命令