HDFS如何计算可用块?

2024-03-22

假设块大小为 128MB,则集群有 10GB(因此大约 80 个可用块)。假设我创建了 10 个小文件,这些文件总共占用磁盘上 128MB(块文件、校验和、复制...)和 10 个 HDFS 块。如果我想向HDFS添加另一个小文件,那么HDFS使用什么来计算可用块,是使用的块还是实际的磁盘使用量?

80 个块 - 10 个块 = 70 个可用块或 (10 GB - 128 MB)/128 MB = 79 个可用块?

Thanks.


块大小只是 HDFS 如何在集群中分割和分发文件的指示 - HDFS 中没有物理保留的块数量(如果您愿意,您可以更改每个单独文件的块大小)

对于您的示例,您还需要考虑复制因子和校验和文件,但本质上添加大量小文件(小于块大小)并不意味着您浪费了“可用块” - 它们占用了尽可能多的空间根据需要(您再次需要记住,复制将增加存储文件所需的物理数据占用空间),并且“可用块”的数量将更接近您的第二次计算。

最后一点 - 拥有大量小文件意味着您的名称节点将需要更多内存来跟踪它们(块大小、位置等),并且处理 128x1MB 文件的效率通常低于处理单个 128MB 文件的效率(尽管这取决于您的方式)重新处理)

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

HDFS如何计算可用块? 的相关文章

  • 如何获取hive中的数据库用户名和密码

    正在编写jdbc程序来连接hive数据库 我希望在连接 url 中提供用户名和密码 我不知道如何使用 hive QL 获取用户名和密码 有人可以帮我吗 Exception in thread main java sql SQLNonTran
  • MapReduce 排序和洗牌如何工作?

    我正在使用 yelps MRJob 库来实现映射缩减功能 我知道 MapReduce 有一个内部排序和洗牌算法 它根据键对值进行排序 所以如果我在地图阶段后得到以下结果 1 24 4 25 3 26 我知道排序和洗牌阶段将产生以下输出 1
  • Amazon MapReduce 日志分析最佳实践

    我正在解析 Apache Nginx Darwin 视频流服务器 生成的访问日志 并按日期 引用者 用户代理聚合每个交付文件的统计信息 每小时都会生成大量日志 而且这个数字在不久的将来可能会急剧增加 因此通过 Amazon Elastic
  • Spark 2.0 弃用了“DirectParquetOutputCommitter”,没有它如何生活?

    最近 我们从 HDFS 上的 EMR gt S3 上的 EMR 启用了一致视图的 EMRFS 迁移 我们意识到 Spark SaveAsTable 镶木地板格式 写入 S3 的速度比 HDFS 慢约 4 倍 但我们发现使用 DirectPa
  • Hive(查找连续 n 列中的最小值)

    我在 Hive 中有一个表 有 5 列 即电子邮件 a first date b first date c first date d first date a b c d 是用户可以执行的 4 个不同操作 上表中的 4 列表示用户执行第一个
  • Curl下载到HDFS

    我有这个代码 curl o fileName csv url xargs hdfs dfs moveFromLocal 1 somePath 当我执行此代码时 curl 将请求中的值放入 fileName csv 中 该文件将移动到 HDF
  • 无法从 JAR 文件加载主类

    我有一个 Spark scala 应用程序 我尝试显示一条简单的消息 Hello my App 当我编译它时sbt compile并运行它sbt run没关系 我成功显示了我的消息 但他显示了错误 像这样 Hello my applicat
  • HDP 3.1.0.0-78 升级后无法使用 ResourceManager UI 终止 YARN 应用程序

    我最近将 HDP 从 2 6 5 升级到 3 1 0 它运行 YARN 3 1 0 并且我无法再使用旧的 8088 cluster apps 或新的 8088 从 YARN ResourceManager UI 终止应用程序 ui2 ind
  • Hive 中字符串数据类型是否有最大大小?

    谷歌了很多 但没有在任何地方找到它 或者这是否意味着只要允许集群 Hive 就可以支持任意大字符串数据类型 如果是这样 我在哪里可以找到我的集群可以支持的最大字符串数据类型大小 提前致谢 Hive 列表的当前文档STRING作为有效的数据类
  • 使用 Hadoop 映射两个数据集

    假设我有两个键值数据集 数据集A和B 我们称它们为数据集A和B 我想用 B 组的数据更新 A 组中的所有数据 其中两者在键上匹配 因为我要处理如此大量的数据 所以我使用 Hadoop 进行 MapReduce 我担心的是 为了在 A 和 B
  • 在 Hadoop 中处理带标头的文件

    我想在 Hadoop 中处理很多文件 每个文件都有一些头信息 后面跟着很多记录 每个记录都存储在固定数量的字节中 对此有何建议 我认为最好的解决方案是编写一个自定义的InputFormat http hadoop apache org co
  • 是否值得购买 Mahout in Action 以跟上 Mahout 的速度,或者还有其他更好的来源吗?

    我目前是一个非常随意的用户阿帕奇马胡特 http mahout apache org 我正在考虑购买这本书象夫在行动 http www manning com owen 不幸的是 我很难理解这本书的价值 并且认为它是一本曼宁早期访问计划 h
  • Spark 上的 Hive 2.1.1 - 我应该使用哪个版本的 Spark

    我在跑蜂巢2 1 1 Ubuntu 16 04 上的 hadoop 2 7 3 根据Hive on Spark 入门 https cwiki apache org confluence display Hive Hive on Spark
  • 异常:java.lang.Exception:使用 master 'yarn' 运行时,必须在环境中设置 HADOOP_CONF_DIR 或 YARN_CONF_DIR。在火花中

    我是新的阿帕奇火花 我已经在spark独立模式下测试了一些应用程序 但我想运行应用程序yarn模式 我正在windows中运行apache spark 2 1 0 这是我的代码 c spark gt spark submit2 master
  • R+Hadoop:如何从HDFS读取CSV文件并执行mapreduce?

    在以下示例中 small ints to dfs 1 1000 mapreduce input small ints map function k v cbind v v 2 MapReduce函数的数据输入是一个名为small ints的
  • 将日期字符串转换为“MM/DD/YY”格式

    我刚刚看到这个例子 我该如何解决这个问题 Hive 元存储包含一个名为 Problem1 的数据库 其中包含一个名为 customer 的表 customer 表包含 9000 万条客户记录 90 000 000 每条记录都有一个生日字段
  • Namenode高可用客户端请求

    谁能告诉我 如果我使用java应用程序请求一些文件上传 下载操作到带有Namenode HA设置的HDFS 这个请求首先去哪里 我的意思是客户端如何知道哪个名称节点处于活动状态 如果您提供一些工作流程类型图或详细解释请求步骤 从开始到结束
  • 获取行 HBase 的特定列族中的列

    我正在编写一个应用程序 通过 JSP 显示 HBase 中特定表中的数据 我想获取一行的特定列族中的所有列 有什么办法可以做到这一点吗 public String getColumnsInColumnFamily Result r Stri
  • 如何将Hive数据表迁移到MySql?

    我想知道如何将日期从 Hive 转移到 MySQL 我看过有关如何将 Hive 数据移动到 Amazon DynamoDB 的示例 但没有看到有关如何将 Hive 数据移动到 MySQL 等 RDBMS 的示例 这是我在 DynamoDB
  • 如何在 Hadoop 中将 String 对象转换为 IntWritable 对象

    我想转换String反对IntWritableHadoop 中的对象 任何过程都可以进行转换 IntWritable value new IntWritable Integer parseInt someString 并处理以下可能性par

随机推荐

  • XMLHttpRequest() 与 ActiveXObject("Microsoft.XMLHTTP") - 有什么意义?

    Microsoft 最终在 Internet Explorer 7 中添加了本机 XMLHttpRequest 对象 但我发现它可以在 Internet 选项 对话框中禁用 那么使用 XMLHttpRequest 与 ActiveXObje
  • 使用 gcov 进行交叉分析,但忽略 GCOV_PREFIX 和 GCOV_PREFIX_STRIP

    我想使用 GCOV 进行代码覆盖 但测试将在另一台机器上运行 因此可执行文件中 gcda 文件的硬连线路径将不起作用 为了更改此默认目录 我可以使用 GCOV PREFIX 和 GCOV PREFIX STRIP 环境变量 如上所述here
  • 将 Twitter Bootstrap 添加到 CodeIgniter?

    我使用 CodeIgniter 开发了网站 该网站使用 MySQL 来填充结果页面 我现在想改进所有页面的外观 大多数地方都推荐使用 Bootstrap 我尝试将 Bootstrap 添加到我的 CodeIgniter 项目中 但没有成功
  • Qt:QProcess调用终端+脚本

    我在使用 QProcess 时遇到了真正的麻烦 我已经查看了几个使用它的位置 但每次使用它时我的程序都会冻结 或者它只是不执行我想要它执行的操作 我想从 GUI 应用程序执行以下操作 将目录更改为 Users Tim etc 等 从那里我需
  • 创建一个简单的 VUE.JS 应用程序

    我正在尝试按照以下步骤在应用程序中使用 Vue 中的简单多边形裁剪器article https morioh com p 06b7fc24c8b5 我使用以下方法创建了我的应用程序 vue init webpack myproject 现在
  • 如何在包含 Rust 特征的泛型类型上实现 deref?

    如果能够使用 Deref 从通用容器生成 TraitType 而不是调用 instance as ref 会相当方便 IE my container do thing vs my container as ref do thing 为此 我
  • 防止复制使用 dompdf 创建的 pdf 中的内容

    有没有办法阻止接收者在dompdf中选择和复制pdf文件的内容 像其他打开它时看起来像图片的pdf文件一样 所有字母和图像都无法选择 您可以使用底层 CPDF 引擎来指定用户可以对文档执行哪些操作 根据 CPDF 文档 调用 setEncr
  • 获取设备令牌时发件人 ID 无效

    我正在我的 Android 应用程序中进行 Firebase 云消息传递设置 我不是第一次做 我已经做过很多次了 但这一次 我在尝试获取设备令牌时遇到了一个奇怪的错误 无效的发件人 ID 除了默认情况下存在于 google services
  • 如何使用Java打开和关闭虚拟键盘

    我尝试了这里的所有答案 在Java程序中打开Windows虚拟键盘 https stackoverflow com questions 4948420 open the windows virtual keyboard in a java
  • 抽象类中受保护的抽象或公共抽象方法

    嗨 我有一个抽象类 其中有一些公共方法和一些抽象方法 我有公众 以便他们实现派生类的通用方法 让我困惑的是为什么我想要定义一个公共抽象方法而不是受保护的抽象方法 对我来说 在抽象类中定义公共抽象方法是没有意义的 因为 if 是一个抽象 在派
  • Laravel 5,连接子句中的派生表?

    我有这样的疑问 SELECT FROM blog LEFT JOIN SELECT blog id AVG value as blog rating FROM blog ratings GROUP BY blog id T ON T blo
  • 绘制的 envfit 向量与 NMDS 分数不匹配

    我制作了一个 NMDS 图并绘制了我的环境 如下所示 mytable 的数据框 sites c Site A Site B Site C Site D Site E Site F Site G Site H Site I Site J Si
  • heroku无法安装zbar

    我有一个 Django 应用程序 它使用 zbar 进行条形码识别 它在我的开发人员机器上运行良好 但当我尝试将其部署到 Heroku 时 我的提交被拒绝 并显示以下消息 Installing collected packages zbar
  • 调用 FileWriter 的单元测试方法

    我正在尝试为调用 FileWriter 的方法编写单元测试 我正在使用 JUnit 4 8 Powermock 和 Mockito 我正在测试的方法看起来像这样 public void methodToTest String fileNam
  • 在 pandas 中,按 DatetimeIndex 中的日期进行分组

    考虑以下综合示例 import pandas as pd import numpy as np np random seed 42 ix pd date range 2017 01 01 2017 01 15 freq 1H df pd D
  • Swift 3:将字符串转换为数组

    我在 SWIFT 3 上的应用程序上 我在屏幕上显示一个句子并记录用户的声音以查看是否匹配 我想提取句子中的每个单词来单独比较每个单词 我使用代码 let StringToLearn word text let StringToLearnA
  • 更改 SQL Server 中的用户定义类型

    我在数据库中创建了一些用户定义的类型 如下所示 CREATE TYPE dbo StringID FROM nvarchar 20 NOT NULL 并将它们分配到不同的表中 我的数据库中的表具有各种模式 不仅dbo 但我意识到我需要更大的
  • 使用jquery打开文件浏览器

    我有以下代码 p Select a file p
  • 使用 NavigationLink 将信息传递到另一个视图

    我有以下视图 我需要通过item内容到另一个视图 DetailsEvent swift 我正在使用NavigationLink 我使用的是 Xcode 11 GM struct Events View ObservedObject var
  • HDFS如何计算可用块?

    假设块大小为 128MB 则集群有 10GB 因此大约 80 个可用块 假设我创建了 10 个小文件 这些文件总共占用磁盘上 128MB 块文件 校验和 复制 和 10 个 HDFS 块 如果我想向HDFS添加另一个小文件 那么HDFS使用