Hadoop 中的分割大小与块大小

2024-03-05

Hadoop 中的分割大小和块大小之间有什么关系?当我读到this http://willddy.github.io/2012/08/25/Hadoop-Split-and-Block.html,分割大小必须是块大小的n倍(n是整数并且n>0),这是正确的吗?分割大小和块大小之间有一定的关系吗?


在HDFS架构中,有一个块的概念。 HDFS 使用的典型块大小是 64 MB。当我们将一个大文件放入HDFS时,它被切分成64 MB的块(基于块的默认配置),假设您有一个1GB的文件并且您想将该文件放入HDFS,那么将有1GB/64MB = 16 个分割/块,这些块将分布在 DataNode 上。根据您的集群配置,这些块/块将驻留在不同的 DataNode 上。

数据分割是根据文件偏移量进行的。将文件分割并将其存储到不同的块中的目标是并行处理和数据的故障转移。

块大小和分割大小之间的差异。

分割是数据的逻辑分割,主要用于使用 Map/Reduce 程序或 Hadoop 生态系统上的其他数据处理技术进行数据处理。分割大小是用户定义的值,您可以根据您的数据量(您正在处理的数据量)选择自己的分割大小。

Split主要用于控制Map/Reduce程序中Mapper的数量。如果您没有在 Map/Reduce 程序中定义任何输入分割大小,则默认的 HDFS 块分割将被视为输入分割。

Example:

假设您有一个 100MB 的文件,HDFS 默认块配置为 64MB,那么它将被切成 2 个分割并占用 2 个块。现在您有一个 Map/Reduce 程序来处理此数据,但您尚未指定任何输入拆分,然后根据块数(2 个块)输入拆分将被考虑用于 Map/Reduce 处理,并且将为此分配 2 个映射器工作。

但是假设您在 Map/Reduce 程序中指定了分割大小(例如 100MB),那么两个块(2 个块)将被视为用于 Map/Reduce 处理的单个分割,并且将为此作业分配 1 个 Mapper。

假设您在 Map/Reduce 程序中指定了分割大小(例如 25MB),那么 Map/Reduce 程序将有 4 个输入分割,并且将为该作业分配 4 个 Mapper。

结论:

  1. Split是输入数据的逻辑划分,而block是数据的物理划分。
  2. 如果未指定输入分割,则 HDFS 默认块大小为默认分割大小。
  3. 分割是用户定义的,用户可以在 Map/Reduce 程序中控制分割大小。
  4. 一个split可以映射到多个block,一个block可以有多个split。
  5. Map任务(Mapper)的数量等于Split的数量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop 中的分割大小与块大小 的相关文章

随机推荐

  • 在 WPF 中显示多维数据

    在 WPF 中显示多维数据的最佳方式是什么 直到运行时我才会知道数据的大小 形状 理想情况下 我想使用数据绑定 但这不是严格的要求 我正在考虑某种网格 但我不知道如何动态绑定到数据并让它计算出行数和列数 请提供建议和示例 听起来好像您想要一
  • 隐藏样式、块样式和无样式之间的区别

    我试图找出风格之间的差异 hidden block none 我正在尝试这个例子 但不幸的是这不起作用 有人可以告诉我答案吗 div hr DIV 1 hr div 你真的很接近 两种不
  • 用于输入/V 模型的 Vue 过滤器

    所以我对 ES6 SPA Javascript 和 Vue JS 非常陌生 我主要使用 JQuery 所以我有一个全局过滤器 Vue filter formatDate function value if value return mome
  • 在 Backbone.js 中,如何让模型超类默认值充当子类的默认值?

    我有一个定义一些默认值的类和一个定义一些默认值的子类 但是 当我创建子类的实例时 它只查看本地默认值 不会将其默认值与父类的默认值合并 有没有什么简单的方法可以做到这一点 而无需显式地将本地默认值与父默认值合并initialize每个子类的
  • Javascript:类属性在拖动事件期间变得未定义

    我对 Javascript 中的类还很陌生 我已经被困了几天试图理解为什么我的属性在我的所有方法中都变得未定义 我试图复制this https www kirupa com html5 drag htm到一个类中 但不成功 因为每次调用方法
  • 在C中,如何使用X11获取屏幕内活动监视器的几何形状(x,y,宽度,高度)

    我所有的搜索都得到了关于如何使用 C 获取 X11 中活动屏幕的几何形状的答案 但该屏幕可能包含许多显示器 并且通常只有一个屏幕 除非有许多用户同时使用同一台计算机 关于获取屏幕几何形状的那些答案已经过时 因为它们没有考虑多个显示器 那么
  • 从 mysql 时间戳字段中选择不同的月份和年份,并在 php 中回显它们

    我的mysql表有一个createdOn列 其filedtype timestamp 的格式为2011 10 13 14 11 12 我需要的是显示与createdOn列不同的月份 年份 我已经搜索了堆栈溢出并能够使用以下代码回显几个月 s
  • Codeigniter上传路径无效

    下面的人给出了代码和文件夹结构 任何人都可以帮助我为什么会出现 上传路径似乎无效 错误 如何解决此错误 文件夹结构 Application System Upload 414208 代码点火器代码 config upload path up
  • 中传递多个变量' aria-label='使用 PHP 和 $_GET[''] 在 中传递多个变量'> 使用 PHP 和 $_GET[''] 在 中传递多个变量

    我正在使用 PHP 根据变量创建链接 目前我有这行代码 我已经使用过多次并且工作完美 echo a href value2 a 以上全部在一行 在接收页面我有 assignmentName GET assignName 它从 URL 中检索
  • C#.net 中具有不同间隔的多个计时器

    我想要输入不同间隔的不同计时器 例如 如果我输入 4 则 4 个计时器创建并在 4 个标签中显示时间 其中第一个计时器的时间在 1 秒内变化 第二个计时器的时间在 2 秒内变化 第三个计时器的时间在 3 秒内变化4tn 计时器的时间在 4
  • 在 Azure 应用服务中部署前端和后端应用程序的最佳方法是什么?

    我们正在分别使用 Reactjs 开发前端应用程序和使用 Nodejs 开发后端应用程序 但我不太熟悉 Azure 应用服务后端的部署工作方式 我已经成功部署了我们的前端 它现在已在应用程序服务 URL 中启动并运行 但我不确定如何处理后端
  • 在android帮助中翻转位图?

    我想为我的游戏节省内存 我想问你 因为我找不到任何东西 上次我在这里问问题时我得到了很好的答案 我可以在 Eclipse 中翻转位图 这样我就可以节省精灵的内存吗 我发现的所有教程都是关于旋转而不是翻转 翻转位图的教程仅适用于 open G
  • 通过 Websocket 传输视频

    我正在尝试构建可以从双方传输视频的移动应用程序 即视频通话之类的东西 我研究了 webrtc 但这还没有为移动本机应用程序做好准备 无论如何 webrtc 正在做的是允许浏览器直接捕获相机和音频而不需要插件等 但在本机移动应用程序中捕获相机
  • SyntaxError:JSON 输入意外结束 - 这是为什么?

    这是我使用express和node js编写的代码 const express require express const https require https const app express app get function req
  • 我应该在哪里存储 jwt 令牌以在服务器端进行身份验证

    在我的 Nodejs 应用程序中 我使用 jwt 令牌进行身份验证 现在 在创建令牌后 将对其进行验证 为此 它应该存储在某个地方以供验证之用 所以 我的问题是 我应该将其存储在针对相关用户 ID 的单独数据库模式中 还是应该将其存储在其他
  • using 语句和await 关键字在c# 中表现得很好吗

    我有一种情况 我正在做一个async调用一个返回和的方法IDisposable实例 例如 HttpResponseMessage response await httpClient GetAsync new Uri http www goo
  • GLib-GObject-CRITICAL ...断言“夸克> 0”失败

    我对 Gtk 编程相当陌生 我正在使用 Gtkmm 库为我的应用程序编写一个简单的 GUI GUI 是一个更大的应用程序的一部分 它实际上编译为两个单独的可执行文件 但我不认为这是相关的 因为这个问题只涉及两个可执行文件之一 无论如何 我在
  • python:重新启动循环

    i have for i in range 2 n if something do something else do something else i 2 restart the loop 但这似乎不起作用 有没有办法重新启动该循环 Th
  • ajax发布请求到php $_POST vars为空

    我有一个 nginx 重写规则 它将 img src 属性重定向到 php 页面 在此 php 页面中 我尝试发出 GET 请求 成功后会向同一页面发出 POST 请求 将从 GET 请求返回的数据作为数据发送 为什么php脚本中 POST
  • Hadoop 中的分割大小与块大小

    Hadoop 中的分割大小和块大小之间有什么关系 当我读到this http willddy github io 2012 08 25 Hadoop Split and Block html 分割大小必须是块大小的n倍 n是整数并且n gt