为什么Hadoop文件系统不支持随机I/O?

2024-04-12

分布式文件系统(例如 Google 文件系统和 Hadoop)不支持随机 I/O。
(不能修改之前写入的文件。只能写入和追加。)

他们为什么要这样设计文件系统?
该设计有哪些重要优点?

P.S 我知道 Hadoop 将支持修改写入的数据。
但他们表示,它的性能会很不好。为什么?


Hadoop 分发和复制文件。由于文件被复制,任何写入操作都必须通过网络找到每个复制的部分并更新文件。这将大大增加手术时间。更新文件可能会超出块大小,并需要将文件分成 2 个块,然后复制第二个块。我不知道内部结构以及何时/如何分割一个块......但这是一个潜在的复杂性。

如果作业失败或被杀死,并且已经进行了更新并重新运行,该怎么办?它可以多次更新文件。

在分布式系统中不更新文件的优点是,当你更新文件时,你不知道还有谁在使用该文件,你也不知道这些片段存储在哪里。存在潜在的超时(带有块的节点无响应),因此您可能最终会得到不匹配的数据(同样,我不知道 hadoop 的内部结构,并且可能会处理节点关闭的更新,这只是我正在集思广益的事情)

更新 HDFS 上的文件存在很多潜在问题(上面列出了一些问题)。它们都不是不可克服的,但它们需要对性能造成影响来检查和解释。

由于 HDFS 的主要目的是存储用于 MapReduce 的数据,因此行级更新在此阶段并不那么重要。

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

为什么Hadoop文件系统不支持随机I/O? 的相关文章

  • 在Python中的自定义类中实现“with object() as f”的使用

    我必须在 python 中打开一个类似文件的对象 它是通过 dev 的串行连接 然后关闭它 在我的班级的几种方法中 这已经完成了好几次 我的做法是在构造函数中打开文件 然后在析构函数中关闭它 不过 我遇到了奇怪的错误 我认为这与垃圾收集器有
  • 使用 Hadoop 映射两个数据集

    假设我有两个键值数据集 数据集A和B 我们称它们为数据集A和B 我想用 B 组的数据更新 A 组中的所有数据 其中两者在键上匹配 因为我要处理如此大量的数据 所以我使用 Hadoop 进行 MapReduce 我担心的是 为了在 A 和 B
  • 如果 HBase 不是运行在分布式环境中,它还有意义吗?

    我正在构建数据索引 这将需要以形式存储大量三元组 document term weight 我将存储多达几百万个这样的行 目前我正在 MySQL 中将其作为一个简单的表来执行 我将文档和术语标识符存储为字符串值 而不是其他表的外键 我正在重
  • 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
  • 我应该如何优化这个文件系统 I/O 绑定程序?

    我有一个 python 程序 它执行如下操作 从 csv 文件中读取一行 对其进行一些变换 将其分解为实际的行 因为它们将被写入数据库 将这些行写入单独的 csv 文件 除非文件已完全读取 否则返回步骤 1 运行 SQL Loader 并将
  • 猪如何过滤不同的对(对)

    我是猪的新手 我有一个 Pig 脚本 它在两个元素之间生成制表符分隔的对 每行一对 例如 John Paul Tom Nik Mark Bill Tom Nik Paul John 我需要过滤掉重复的组合 如果我使用 DISTINCT 我会
  • 将日期字符串转换为“MM/DD/YY”格式

    我刚刚看到这个例子 我该如何解决这个问题 Hive 元存储包含一个名为 Problem1 的数据库 其中包含一个名为 customer 的表 customer 表包含 9000 万条客户记录 90 000 000 每条记录都有一个生日字段
  • 这个 Java 语法是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 java中的是什么意思 https stackoverflow com questions 12649572 what does the type in java mean 在下面的代码中 Itera
  • Namenode高可用客户端请求

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

    我刚刚开始使用 MapReduce 并且遇到了一个奇怪的错误 我无法通过 Google 回答该错误 我正在使用 ArrayWritable 制作一个基本程序 但是当我运行它时 在Reduce过程中出现以下错误 java lang Runti
  • 确定分区属于什么文件系统

    操作系统如何知道分区正在使用什么文件系统 换句话说 FAT16 32 NTFS ext2 3等如何区分 如果您在 Windows 上使用 Win32 API 则可以调用 GetVolumeInformation http msdn micr
  • Win32 API:如何读取序列号,或者如果不是数据则在超时内退出

    我需要一个函数来从串行端口读取数据 或者如果在时间间隔内没有数据则返回 例如 在 GNU Linux 上你可以使用poll orselect read Windows 中有类似的东西吗 下面是我尝试过的 它应该可以工作 但是功能获取重叠结果
  • hadoop中reducer的数量

    我正在学习hadoop 我发现减速器的数量非常令人困惑 1 reducer的数量与partition的数量相同 2 reducer 的数量是 0 95 或 1 75 乘以 节点数 每个节点的最大容器数 3 减速机数量设定为mapred re
  • 如何每次使用按钮将数据添加到 MATLAB 中的现有 XLSX 文件?

    我有一个函数可以生成一些变量 例如分数 对 错 未回答 使用按钮调用此功能 问题是如何每次将函数生成的这些值添加 附加到 XLSX 文件中 或者 如何创建 MAT 文件以便可以添加它 可能的解决方案是什么 附加到 xls 文件所涉及的挑战是
  • 如果 DirectoryInfo.GetFiles().Length 超过 Int32.MaxValue 怎么办?

    由另一个question https stackoverflow com questions 3766540 error on maximum number of files 3767265 3767265关于文件夹中的最大文件数 我注意到
  • ASCII“../”是 PHP 中指示目录遍历的唯一字节序列吗?

    我有一个 PHP 应用程序 它使用 GET参数来选择文件系统上的 JS CSS 文件 如果我拒绝输入字符串包含的所有请求 或者可见 7 位 ASCII 范围之外的字节 当路径传递到 PHP 的底层 基于 C 文件函数时 这是否足以防止父目录
  • 在 C++ 中创建大文件的最快方法?

    使用 C 创建大约 50 100 MB 的平面文本文件 内容 添加第一行 应该被插入到文件中 400 万次 使用旧式文件 io fopen用于写入的文件 fseek到所需的文件大小 1 fwrite一个字节 fclose文件
  • 在 Java 中如何找出哪个对象打开了文件?

    我需要找出答案哪个对象在我的 Java 应用程序中打开了一个文件 这是为了调试 因此欢迎使用工具或实用程序 如果发现哪个对象太具体了 这class也会很有帮助 这可能很棘手 您可以从使用分析器开始 例如VisualVM http visua
  • 在 C/C++ 中将数据从一个文件复制到另一个文件的最快方法?

    在我的代码中 我遇到一种情况 需要将数据从一个文件复制到另一个文件 我想出的解决方案如下所示 const int BUF SIZE 1024 char buf BUF SIZE int left to copy toCopy while l
  • 纱线上的火花,连接到资源管理器 /0.0.0.0:8032

    我正在我的开发机器 Mac 上编写 Spark 程序 hadoop的版本是2 6 spark的版本是1 6 2 hadoop集群有3个节点 当然都在linux机器上 我在idea IDE中以spark独立模式运行spark程序 它运行成功

随机推荐

  • 如何在重定向到我的应用程序后关闭 Android 浏览器?

    重定向到我的应用程序后如何关闭浏览器 有什么办法可以做到这一点吗 据我所知 不可能影响其他活动 例如关闭等
  • 删除列表中复杂度优于 O(n^2) 的子字符串

    我有一个包含许多单词 100 000 的列表 我想做的是删除列表中每个单词的所有子字符串 因此 为了简单起见 我们假设我有以下列表 words Hello Hell Apple Banana Ban Peter P e 以下输出是所需的 H
  • 同时获取logcat和内核日志

    我正在尝试通过以下命令获取日志 logcat 和 kmsg logcat v 时间 f dev kmsg cat proc 但是我不确定日志文件存储在哪里以及它的名称是什么 我如何识别它 好的 这是谷歌快速搜索的结果 安卓日志系统 http
  • Haskell 中的 undefined 和 Java 中的 null 有什么区别?

    两者的类型都是所有类型的交集 无人居住 两者都可以在代码中传递而不会失败 直到尝试评估它们为止 我能看到的唯一区别是 在 Java 中 有一个漏洞允许null仅针对一个操作进行评估 即引用相等比较 而在 Haskell 中undefined
  • 设置特定文件的 AWS S3 过期时间

    我阅读了 PHP AWS SDK 文档 https docs aws amazon com aws sdk php v2 api class Aws S3 S3Client html https docs aws amazon com aw
  • 二分布局Gephi 0.9.1

    我的问题简单得令人尴尬 how do i plot a bipartite graph in Gephi with a layout like the one you see in the attached image 我真的无法在Geph
  • 是否可以通过显式类型转换将基类对象分配给派生类引用?

    是否可以在 C 中使用显式类型转换将基类对象分配给派生类引用 我已经尝试过了 它会产生运行时错误 不可以 对派生类的引用实际上必须引用派生类的实例 或 null 否则你会期望它如何表现 例如 object o new object stri
  • Jetty 返回 403 Forbidden

    您好 我正在将我的网络应用程序从 tomcat 移植到 Jetty 我正在使用 Jetty runner 来启动它 我使用以下命令来启动 Jetty java jar jetty runner jar port path url path
  • psql 显示 ansi 彩色文本

    My psqlrc有以下选项 setenv LESS iMSx4 FXR setenv PAGER less pset pager always 我想要着色的 psql 输出是 x1B 35m x1B 0m x1B 35mr x1B 0m
  • 检测Python字符串是数字还是字母[重复]

    这个问题在这里已经有答案了 如何检测字符串中的数字或字母 我知道您使用 ASCII 代码 但是哪些函数利用了它们呢 检查字符串是否为非负的数字 整数 和字母 您可以使用str isdigit https docs python org 2
  • 使用 async/await 锁定资源

    我有一个应用程序 其中有一个可由多个客户端访问的共享资源 运动系统 我有一些单独的操作 需要在移动期间访问系统 并且如果同时请求冲突的操作 则应抛出 繁忙 异常 我还有序列器 它们需要获得对运动系统的独占访问权限 以执行多个操作 并穿插其他
  • Objective-C 类别性能

    如果我使用类别将 Objective C 类的实现分解为多个 implementation块 这会使我的 iOS 应用程序生成的二进制文件更大或根本影响性能吗 显然 你不能在运行时获取类的类别详细信息 https stackoverflow
  • 为什么从 App.xaml 设置样式 TargetType="Window" 不起作用?

    我正在 VS2013 中创建一个简单的 WPF 项目 我想将属性应用到我的主窗口 我将它们设置在我的App xaml像这样的文件
  • “入队”和“出队”之间的区别

    有人可以解释一下主要区别吗 我对任何语言编程中的这些函数都没有明确的了解 C 和 C 等编程语言中的一些基本数据结构是堆栈和队列 堆栈数据结构遵循 先进后出 策略 FILO 其中插入或 推入 堆栈的第一个元素是最后一个从堆栈中删除或 弹出
  • 使用 jquery ajax 的两个 CORS 请求之间的时间间隔

    我正在使用 jQuery 向 Web 服务发出 CORS 请求 ajax 根据标准 有一个飞行前请求 然后是实际的 POST 请求 我注意到 每次我尝试进行 Web 服务调用时 都会有两个请求 一个是飞行前请求 一个是实际的 POST 请求
  • ASP.NET - 将 JSON 从 jQuery 传递到 ASHX

    我正在尝试将 JSON 从 jQuery 传递到 ASHX 文件 下面的 jQuery 示例 ajax type POST url test ashx data file dave type ward contentType applica
  • SQL Regex 函数类似于 MySql REGEX 函数

    我正在寻找一个能够执行与 TSQL 的 MySQL REGEX 函数相同的操作的函数 基本上我需要我的查询如下所示 SELECT FROM Routing WHERE Message REGEX RouteRegex 我现在不太热衷于使用
  • C++处理文件文件末尾的空行

    当我使用c 处理文件时 我发现文件末尾总是有一个空行 有人说vim会在文件末尾追加一个 n 但是当我使用gedit时 它也有同样的问题 谁能告诉我原因吗 1 include
  • GCC 4.7.2:带有指向成员函数指针的 std::thread

    在编写测试代码时这个问题 https stackoverflow com questions 15080015 stdthread with pointer to data member我发现下面的注释行无法在 GCC 4 7 2 上编译
  • 为什么Hadoop文件系统不支持随机I/O?

    分布式文件系统 例如 Google 文件系统和 Hadoop 不支持随机 I O 不能修改之前写入的文件 只能写入和追加 他们为什么要这样设计文件系统 该设计有哪些重要优点 P S 我知道 Hadoop 将支持修改写入的数据 但他们表示 它